此代码
fscanf(f, "%[^|]|%d", text, &num)
如果文本长于0个字节,则可以工作,例如文件包含:
testtext|89
但是如果文本像这里那样是0字节长:
|89
然后fscanf读取的数字将为零! 怎么了?
答案 0 :(得分:3)
根据此页面:http://www.cplusplus.com/reference/cstdio/fscanf/
任何说明者都应使用至少一个字符。否则匹配失败,扫描结束。
答案 1 :(得分:1)
在这种情况下,更优选使用strtok()并使用'|'作为分隔符。