我正在尝试学习如何在C ++中使用ifstream上传和读取文件(这对于编程来说是相当新的,所以我试图开始简单)。作为我的示例文件,我在文本文件中有这个:
3
1
2
并在主文件中:
int num;
ifstream infile;
infile.open(filename,ios::in);
infile>>num;
cout<<num<<endl;
所以如果我替换文本文件中的第一行:
k
1
2
我希望我的程序检查我的文件中的第一个条目是int类型然后退出并且如果不是则给我一个错误。相反,我总是得到0作为输出。我该怎么做才能检查这个可能的错误?
答案 0 :(得分:1)
这是应该怎么做的。建议不要检查good()
:
while (infile >> num)
{
std::cout << num << std::endl;
}
if (infile.fail() && !infile.eof())
{
std::cout << "Invalid number";
}