从.txt文件中删除特定行(C ++)

时间:2020-05-30 20:41:49

标签: c++ delete-file

我试图浏览.txt文件的内容,以便将其与用户的int输入进行比较,并找到匹配的值,然后将其写入的行删除。 该文件不只有数值。 该文件包含的内容的示例: “你好世界505” “ hello world 506”等。

到目前为止,我的代码能够进行比较(行的长度不同),但是我不知道如何将文件指针移动到找到所述值的行。有帮助吗?

void comparisoniD2 (int a) {

    int x[ countLinesOf() ];

    ifstream readFile;
    readFile.open("ClientList.txt");
    string str;
    for (int i = 0; i< countLinesOf();i++){
        while (getline(readFile, str)) {
            reverseStr2(str);
            str.erase(3);
            reverseStr2(str);
            stringstream geek(str);
            geek >> x[i];
            if( x[i]==a ){
                cout<<a<<" is equal to "<<x[i]<<endl;
                break;
            }
        }
    }

    readFile.close();
}

1 个答案:

答案 0 :(得分:1)

如果要在同一文件中执行此操作,则会有些困难。

例如,您可以打开同一文件两次:读取字符串和保存字符串。 您的周期是:读取字符串,保存字符串(如果其中不包含合适的数字)。

另一个麻烦是将文件切成较小的尺寸。您可以使用boost :: filesystem或本机api。

相关问题