c++ - 从 .txt 文件中删除特定行 (C++)
问题描述
我正在尝试扫描 .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();
}
解决方案
如果您想在同一个文件中执行此操作,则有点困难。
例如,您可以打开同一个文件两次:读取字符串和保存字符串。您的循环将是:读取字符串,保存字符串(如果它不包含合适的数字)。
另一个麻烦是将文件剪切到较小的大小。您可以使用 boost::filesystem 或本机 api。
推荐阅读
- excel - Excel 映射并创建新列
- python-3.x - 首先删除数组或列表中的\n
- gnome - Gnome 在启动桌面应用程序时究竟做了什么?
- javascript - 使用 useState 更新对象
- django - Django 3 重命名项目后返回 ModuleNotFound 错误
- python - 多个kivy下拉
- postgresql - 如何将证书附加到我的本地 Rest API 以连接到 Google Cloud 中的 Postgres 数据库?
- php - 使用 bind_param 从 mysql 中选择两个表
- r - 如何在 ggplot 中引用管道对象?
- bash - 我正在尝试编写 S3 Bash 脚本以便能够在其中传递存储桶名称和对象以便能够在本地下载