我fscanf
在 C++ 中使用如下:
这是我的文本文件:
abcd
efgh
“efgh”后没有空格或换行。现在这是我的循环:
FILE* fp;
char eof = 0;
do
{
char str[20];
fscanf(fp, "%s", str);
std::cout<<str<<std::endl;
}
while((eof = fgetc(fp)) != eof)
我期望的输出是:
abcd
efgh
但我得到的实际输出是:
abcd
efgh
efgh
我调试了一个发现,在读取“efgh”之后,读入 eof 的值是 '\n' 而不是 EOF。环境是linux mint。我想知道为什么最后一个字符串总是被读取2次。请指教