从文本文件中读取字符时,我不知道为什么最后一个字符被读取两次?但如果我在行中插入一个新行,则不再读取两次。
Heres是班级
class ReadFromFile {
private:
std::ifstream fin;
std::string allMoves;
public:
ReadFromFile(std::string fileName) {
fin.open(fileName, std::ios::in);
char my_character;
if (fin) {
while (!fin.eof()) {
fin.get(my_character);
allMoves += my_character;
}
} else {
std::cout << "file does not exist!\n";
}
std::cout << allMoves << std::endl;
}
};
并且继承了文本文件的内容(没有换行符)
1,2 3,1 1,3 1,2 1,4
和输出:
1,2 3,1 1,3 1,2 1,44
答案 0 :(得分:2)
您需要在fin.get
之后检查结果。如果此调用失败(因为它发生在最后一个char上),你继续前进,尽管流已经结束(并且my_character无效)
类似的东西:
fin.get(my_character);
if (!fin)
break ;