0

代码是

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

问题是什么?谢谢你。

4

1 回答 1

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);
}
于 2013-05-23T17:59:33.273 回答