代码是
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
问题是什么?谢谢你。
尝试
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);
}