的代码是

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/

10-13 06:41