使用ifstream检查C ++中的数据类型

时间:2013-11-01 01:51:45

标签: c++ types ifstream

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

3
1
2

并在主文件中:

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

所以如果我替换文本文件中的第一行:

k
1
2

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

1 个答案:

答案 0 :(得分:1)

这是应该怎么做的。建议不要检查good()

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

if (infile.fail() && !infile.eof())
{
    std::cout << "Invalid number";
}