C++输入流ifstream指针重置问题
#include<iostream>
#include<fstream>
#include<string>
using namespace std;
int main() {
ifstream in;
string str;
char buffer[1024] = {0};
in.open("./", ios::in);
if (!in.is_open()) {
cout << "Fail to open file!" << endl;
} else {
cout << "==============1============" << endl;
// 遇到空格/换行停止读取
while (in >> buffer) {
cout << buffer << endl;
}
// 此时读指针已经到达文件尾部,若我们需要再一次读取文件内容,需要先调用clear再调用seekg
cout << "==============2============" << endl;
// 逐行读取
// 当读指针达到文件尾部时,seekg失效,需要先调用clear清除再代用seekg
in.clear();
in.seekg(0, ios::beg);
while (in.getline(buffer, sizeof(buffer))) {
cout << buffer << endl;
}
}
in.close();
return 0;
}