为什么ifstream
在读取指定文件的最后一行后将failbit
设置为1
?如何知道指定的文件是否被正确读取?如何知道指定文件是否被正确读取?
bool read_csv_file(const char* filename, vector<string>& lines, bool adding = false)
{
if(!adding) lines.clear();
ifstream csvfile;
csvfile.open(filename);
if(csvfile.is_open())
{
string line;
while(csvfile.good() && getline(csvfile,line))
{
lines.push_back(line);
cout << "fail: " << csvfile.fail() << endl;
}
cout << "fail: " << csvfile.fail() << endl;
csvfile.close();
return (!csvfile.fail());
}
return false;
}
您的代码*远*太吵。你可以简单地说'ifstream csvfile(filename); if(!csvfile){/ * error */return false; }'并摆脱你的大部分代码。 –