代码是
i=0;
while (fscanf(fp, "%[^,],%[^,],%[^\n]\n", &a,&b,&c) == 3) i++;
文件是
abc,def,ghi
cdb,adf,wea
adf,adf,wee
但结果是
a=abc
b=def,ghi
c=cdb
有什么问题?谢谢。
答案 0 :(得分:1)
尝试
while (fscanf(fp, "%[^,],%[^,],%[^\n]\n", a,b,c) == 3) i++;
您声明a,b和c为数组。你想要的是将指针传递给fscanf
。您需要将指针指定为a
或&a[0]
。
[编辑]
以下程序适合我。你能试试吗?
#include <stdio.h>
main () {
char a[32], b[32], c[32];
int i=0;
while (fscanf(stdin, "%[^,],%[^,],%[^\n]\n", a, b, c) == 3) {
i++;
}
printf ("%s %s %s\n", a, b, c);
}