首页 > 解决方案 > 如何逐行读取文件并忽略注释?

问题描述

我有一个文本文件包含

//range of X
X=1-5

//range of Y
Y=1-5

我如何读取文件以使其忽略注释和空行并获取以下输出:

X=1-5

Y=1-5

int main(){

    string fileName,X;
    cout << "Please enter filename: " ;
    cin >> fileName;


    ifstream infile;    
    infile.open(fileName);  

        if (!infile){       
            cerr << "Error opening : " << fileName << ", file does not exist" << endl;
            return -1;      
        }


    while(getline(infile, X)){
        cout << X;
    }

    infile.close();
    return 0;
}

标签: c++filesortingreadfilegetline

解决方案


根据您的问题,注释总是使用运算符“//”在不同的行上。

if(X.size() == 0 || (X.size() >= 2 && X[0] == '/' && X[1] == '/')){
     continue;
}

推荐阅读