从带有单词的文本文件中读取整数

Ano*_*ous 2 c++ file

我试图从这样结构化的文本文件中读取整数....

ALS 46000
BZK 39850
CAR 38000
//....
Run Code Online (Sandbox Code Playgroud)

使用ifstream.

我考虑了两个选择.

1)正则表达式使用Boost

2)创建一次性字符串(即我读到一个单词,不要对它做任何事情,然后读入分数).但是,这是最后的手段.

有没有办法在C++中表达我希望ifstream只读取整数文本?如果事实证明有一种更简单的方法可以实现这一点,我不愿意使用正则表达式.

小智 9

为什么简单的事情变得复杂?

这有什么不对的:

ifstream ss("C:\\test.txt");

int score;
string name;
while( ss >> name >> score )
{
    // do something with score
}
Run Code Online (Sandbox Code Playgroud)

  • 不幸的是,这是典型的反模式.EOF测试(由您的while(ss)暗示)在您阅读文件末尾之后"之后"将不会返回true.因此,当没有输入时,'做某事'将使用无效值做某事.首选'while(ss >> name >>得分)'所以只有在读取成功时才输入循环. (8认同)