C++输入流ifstream指针重置问题

时间:2025-02-19 07:47:56
#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; }