所以,我用一堆文本得到了这个文件。我需要使用fscanf来逐字逐句地忽略逗号。因此this,
应该被理解为this
。
我试过
fscanf(file,"[^,]",string);
但它会以逗号停在单词上。
我该怎么做?
我只能使用fscanf来忽略逗号,没有额外的逻辑
答案 0 :(得分:3)
这是一个更坚固的版本。它接受空格和逗号的任意组合作为单词分隔符:
假设char string[100];
for (;;) {
/* skip any spaces and an optional comma */
fscanf(file, " ,");
if (fscanf(file," %99[^, \t\n\f\r\v]", string) == 1) {
/* handle string value read from file */
}
if (feof(file))
break;
}
使用此格式字符串,fscanf
将跳过空格和可选的逗号,读取下一个字,停在','
或空格字符处理,如果成功则处理string
阅读,并一直持续到file
结束。
fscanf
被读取, 1
将返回string
,否则它甚至不会修改string
。如果流file
在调用之前位于文件末尾,或者行中有多个逗号,则会发生这种情况。这些将在连续迭代中解析,直到有一个实际的单词要读。