為什麼這篇字串 存 入 陣列鄉民發文收入到精華區:因為在字串 存 入 陣列這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者ozneroL (gsl)看板C_and_CPP標題[問題]將字串存入一元陣列??時間Thu F...
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
Dev-C++
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
問題(Question):
我想將txt檔資料讀出想要部分擷取下來存入一元陣列
餵入的資料(Input):
預期的正確結果(Expected Output):
m[18]想要存放a1,a2,b1出來的字串總共進入while六次,一次三的字串
錯誤結果(Wrong Output):
每次print出來的值都是想要的,可是存入陣列後出來的結果就會無法顯示
我想應該是指標存的是位置重複做的結果會覆蓋原來的值
程式碼(Code):(請善用置底文網頁, 記得排版)
#include <iostream>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
using namespace std;
int main()
{
FILE *fp;
fp = fopen("C:\\Users\\99092040\\Desktop\\WI202 log\\SEQ-XXXXXXXX--20110127-230143_PASS.txt","r");
char a[50];
char m[18];
char b[50];
char c[4];
char d[6];
char *p1;
char *p2;
char *s1;
char *a1;
char *b1;
char *a2;
int i=0,j=0;
while(fgets(a,50,fp)!=NULL)
{
p1=strstr(a,"ANT0");
p2=strstr(a,"ANT1");
//printf("%s\n",a);
if(p1!=NULL || p2!=NULL)
{
//printf("%s\n",a);
s1=strtok(a,"\t");
//printf("%s\n",s1);
s1=strtok(NULL,"\t");
s1=strtok(NULL,"\t");
//printf("%s\n",&s1);
a1=s1;
//memcpy(a1, s1, sizeof(s1));
printf("%s\n",a1);
m[j]=*a1;
//strncpy(m[j],a1,sizeof(a1));
//printf("%s\n",m[0]);
j=j+1;
//a1=strcat(a1,"_");
s1=strtok(NULL,"\t");
a2=s1;
//printf("%s",a2);
m[j]=*a2;
//strcpy(m[j],a2);
j=j+1;
s1=strtok(NULL,"\t");
s1=strtok(NULL,"\t");
s1=strtok(NULL,"\t");
s1=strtok(NULL,"\t");
s1=strtok(NULL,"\t");
b1=s1;
//strcpy(m[j],b1);
//printf("%s",b1);
m[j]=*b1;
j=j+1;
//i=i+1;
//printf("%s\n",m[0]);
//printf("%s %s\t",a1,a2);
}
//printf("%s\n",m[j]);
}
printf("%s",(m[2]));
fclose(fp);
system("pause");
return 0;
}
補充說明(Supplement):
被mark的地方是我要驗證出來的結果, printf("%s",(m[0]))理論上只想要一個字串,可是卻會跑出六個字串??
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.134.146.217