2

我正在尝试学习如何在 C++ 中使用 ifstream 上传和读取文件(对编程来说相当新,所以我试图从简单开始)。作为我的示例文件,我在一个文本文件中有这个:

3
1
2

这在主文件中:

int num;
ifstream infile;
infile.open(filename,ios::in);
infile>>num;
cout<<num<<endl;

因此,如果我替换文本文件中的第一行:

k
1
2

我希望我的程序检查文件中的第一个条目是否为 int 类型,然后退出并在不是时给我一个错误。相反,我总是得到 0 作为输出。我该怎么做才能检查这个可能的错误?

4

1 回答 1

1

这就是应该这样做的方式。good()不建议检查:

while (infile >> num)
{
    std::cout << num << std::endl;
}

if (infile.fail() && !infile.eof())
{
    std::cout << "Invalid number";
}
于 2014-01-10T16:26:32.157 回答