我是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/