【mie haha 的博客】转载请注明出处(万分感谢!):
https://blog.youkuaiyun.com/qq_40315080/article/details/88176331
在用ifstream循环(eof判断是否结束)读取文件中字符时,发现最后一个字符读取了两遍,原错误代码:
char ch;
ifstream infile("input.txt",ios::in);
while(!infile.eof())
{
infile>>ch;
cout<<ch;
}
输入:
运行输出:
修改循环,改成用get先获取字符,判断一下是否结束再输出就可以避免最后一个字符读取两遍:
for(;;)
{
infile.get(ch);
if(infile.eof())break;
cout<<ch;
}
或者循环条件改用infile.peek()判断
while(infile.peek()!=EOF)
{
infile>>ch;
cout<<ch<<" ";
}
运行输出: