【发布时间】:2021-10-27 13:33:50
【问题描述】:
vicky.txt 文件
I was born in Hupari.
代码-1
#include <iostream>
#include<fstream>
int main()
{
char ch;
std::ifstream fin;
fin.open("vicky.txt", std::ios::in);
while (!fin.eof())
{
fin.get(ch);
std::cout<<ch;
}
fin.close();
return 0;
}
输出
I was born in Hupari..
代码-2
#include <iostream>
#include<fstream>
int main()
{
char ch;
std::ifstream fin;
fin.open("vicky.txt", std::ios::in);
while (!fin.eof())
{
ch=fin.get();
std::cout<<ch;
}
fin.close();
return 0;
}
输出
I was born in Hupari.
为什么在使用fin.get(ch) 时它会读取最后一个字符两次。另一方面,ch=fin.get() 正确读取意味着只读取最后一个字符一次。
顺便说一下fin.get(ch)的返回类型? fin.get() 的返回类型是 char 对吗?
【问题讨论】:
-
都不正确。两者都没有检查
fin.get的 EOF。重复:stackoverflow.com/a/26557243/4641116
标签: c++ get file-handling ifstream eof