我是C新手,我正试图使用fscanf从不同长度的文件行中读取
可以从文件中读取3行不同的内容,即:

string
string char
string char char

我有这个:
char elem1;
char elem2;
char *str;

while(fscanf(file, %s%c%c, str, &elem1, &elem2) == 3) {
    ...do stuff
}

显然,当我得到所有3个期望参数时,这是可以的,但是如果这一行只包含一个字符串,那么下一行的前两个字符串将被分配给elem1和2。
我怎么解释?

最佳答案

你应该阅读整行并使用strtok来获取行上的单词。
编辑:有关使用strtok_r而不是strtok的好处,请参见评论讨论。

关于c - fscanf()具有不同的输入?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19760720/

10-11 21:58
查看更多