我有一个功能,通过文字需要从文件输入,字符:在文件重置之前,最后一个字符是如何接受两次?
#include <iostream>
#include <fstream>
using namespace std;
ifstream input("sequence.txt");
char getChar(){
char nextType;
if (input.eof()) {
input.clear();
input.seekg(0,ios::beg);
}
input >> nextType;
return nextType;
}
int main(){
for(int i = 0; i < 10; i++){
cout << getChar() << endl;
}
return 0;
}
内部“sequence.txt”输入为:
I O
所以输出应打印交替的我和O的,而是输出:
I O O I O O I O O I
如何在第一次读取文件中的最后一个字符后重置文件?
谢谢!我从未考虑过这种方法。我很感激帮助。 –
即使这是不正确的。您无法验证第二次读取是否成功。考虑如果文件是空的,或者只包含空格,会发生什么。 –
@JamesKanze:我是在问题中提出的前提条件下运作的。额外的信息很好,但我认为对实际问题的答案仅仅是解释eof如何工作以及如何避免这种行为。 –