格式化字符串问题
我有一个如下格式的文本文件:
(6) (40) (日期字段) (8)
HK Hong Kong 2001-7-9 10:08:00 1234567B
PRC CHINA 2001-7-9 10:08:00 1234567B
DG Dong Guang 2001-7-12 9:52:00 1234567B
我想读出来显示。
代码这样写的:
char buf[64];
char f1[6];
char f2[40];
char f3[10];
char f4[8];
FILE *fp;
int i=1;
fp=fopen("f:\\txt\\bas01.txt","r");
while(fgets(buf,64,fp)!=NULL) {
printf("%d\n",i);
sscanf(buf,"%[^|]|%[^|]|%[^|]|%s",f1,f2,f3,f4);
printf("%s,%s,%s,%s",f1,f2,f3,f4);
i++;
}
fclose(fp);
可显示结果为:
1
HK Hong Kong 2001-7-9 10:08:00 1234567B,,,
2
PRC CHINA 2001-7-9 10:08:00 1234567B,,,
3
DG Dong Guang 2001-7-12 9:52:00 1234567B,,,
而我想的结果是:
1
HK ,Hong Kong ,2001-7-9 10:08:00 ,1234567B
2
PRC ,CHINA ,2001-7-9 10:08:00 ,1234567B
3
DG ,Dong Guang ,2001-7-12 9:52:00 ,1234567B
各位邦邦我忙.