的代码是
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);
}
关于c - 在fscanf [^,]上失败,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16720531/