ifstream的运营商>>检测线路终端?

Bon*_*onk 7 c++ parsing operator-overloading istream ifstream

我有一个不规则的列表,其中的数据如下所示:

[Number] [Number]
[Number] [Number] [Number] 
[Number] [Number] [Number] 
[Number] [Number] [Number] 
[Number] [Number] [Number] 
[...]
Run Code Online (Sandbox Code Playgroud)

请注意,有些行有2个数字,有些有3个数字.目前我的输入代码看起来像这些

inputFile >> a >> b >> c;
Run Code Online (Sandbox Code Playgroud)

但是,我想忽略只有2个数字的行,是否有一个简单的解决方法呢?(最好不使用字符串操作和转换)

谢谢

Mar*_*ork 13

使用getline,然后分别解析每一行:

#include <iostream>
#include <sstream>
#include <string>

int main()
{
    std::string   line;
    while(std::getline(std::cin, line))
    {
        std::stringstream linestream(line);
        int a;
        int b;
        int c;
        if (linestream >> a >> b >> c)
        {
            // Three values have been read from the line
        }
    }
}
Run Code Online (Sandbox Code Playgroud)