我必须读取一个包含存储在向量中的路径列表的文件。
vector<string> files;
ifstream in;
string x;
while( !in.eof() ) {
in >> x;
files.push_back(x);
}
但问题是,当读取最后一个路径时,in.eof()仍为false,并且循环继续进行另一个不需要的步骤。 修复可能是这样的事情
vector<string> files;
ifstream in;
string x;
while( in >> x ) {
files.push_back(x);
}
但我认为在while循环中代码更复杂的情况下,这不是一个很好的解决方案。我错了吗?
答案 0 :(得分:2)
这将允许您读取文件的末尾,不再进一步。只要文件中包含文本,就会读取每一行。
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main () {
string line;
ifstream myfile ("example.txt");
if (myfile.is_open())
{
while ( getline (myfile,line) )
{
cout << line << '\n';
}
myfile.close();
}
else cout << "Unable to open file";
return 0;
}