【发布时间】:2020-03-20 22:00:55
【问题描述】:
我正在尝试以特定顺序读取一个简单的文本文件。在这种情况下,我读取了一个 int,然后是 string,然后是 double。这是文本文件:
54321 Television
250
46782 Laptop
1200
23461 Ipad
500
87612 Playstation
400
这是我用来检查文件是否有错误(错误类型或错误文件名)的函数:
void Electronics::ReadData(istream& electronicsFile)
{
int barcode;
string name;
double price;
while (electronicsFile.good()) {
electronicsFile >> barcode >> name >> price;
}
if (electronicsFile.fail()) {
throw runtime_error("Error reading electronics file");
}
}
我遇到的问题是我的文本文件以换行符结尾,导致我的程序每次将文件读取到最后时都会抛出运行时错误。如何读取整个文件而不让它返回故障位?
【问题讨论】: