fscanf [^,]失败

时间:2013-05-23 17:43:46

标签: c scanf

代码是

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

有什么问题?谢谢。

1 个答案:

答案 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);
}