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

问题描述 投票:1回答:1

我正试图扫描一个.txt文件的内容,以便与用户的int输入进行比较,一旦发现匹配的值,就将其写入的行删除.该文件不只有数值。例如文件中包含的内容。" hello world 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();
}
c++ delete-file
1个回答
1
投票

如果你想在同一个文件中做这些事情,那就有点困难了。

例如,你可以打开同一个文件两次:读取字符串和保存字符串,你的循环将是:读取字符串,保存字符串(如果它不包含合适的数字)。

另一个麻烦是要把文件切成较小的尺寸。你可以使用 boost::filesystem 或者 native api。

© www.soinside.com 2019 - 2024. All rights reserved.