我正在编写一个程序,以从以下格式的文本文件中读取数据。如何跳过阅读所有以星号开头的行?

* Data set 34.6
* Author: M. S.
1   3
6   7
4   5
... so on


我的代码的相关部分当前如下所示。它可以一次读取并向我的集合中插入2个数字,但是如果上面有以星号开头的注释行,则会出现错误。因此,我不确定在读取文件时如何忽略这些行。

string lin;
while (getline(if1, lin)) {
        istringstream is1(lin);
        int a, b;
        if (is >> a >> b) {
            set3.insert({a, b});
        }
    }

最佳答案

您可以在进行更多阅读之前检查星号,如果找到它,请阅读continue(跳至while的下一个迭代):

string lin;
while (getline(if1, lin)) {
    if(lin[0] == '*') continue; //Skip this line if it's bad
    istringstream is1(lin);
    int a, b;
    if (is >> a >> b) {
        set3.insert({a, b});
    }
}

08-07 02:16