替换文本文件中的一行
Replace a line in text file
我想替换文件中的一行文本,但我不知道有什么函数可以做到这一点。
我有这个:
ofstream outfile("text.txt");
ifstream infile("text.txt");
infile >> replace with other text;
对此有什么答案吗?
我想说的是,在文件的某行添加文本。。。
示例
infile.add(text, line);
C++有这个函数吗?
恐怕您可能需要重写整个文件。以下是您可以做到的方法:
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
string strReplace = "HELLO";
string strNew = "GOODBYE";
ifstream filein("filein.txt"); //File to read from
ofstream fileout("fileout.txt"); //Temporary file
if(!filein || !fileout)
{
cout << "Error opening files!" << endl;
return 1;
}
string strTemp;
//bool found = false;
while(filein >> strTemp)
{
if(strTemp == strReplace){
strTemp = strNew;
//found = true;
}
strTemp += "n";
fileout << strTemp;
//if(found) break;
}
return 0;
}
输入文件:
ONE
TWO
THREE
HELLO
SEVEN
输出文件:
ONE
TWO
THREE
GOODBYE
SEVEN
如果只想替换第一次出现的内容,只需取消注释注释行即可。此外,我忘记了,最后添加了删除filein.txt并将fileout.txt重命名为filein.txt的代码。
您需要查找文件中正确的行/char/位置,然后重写。没有这样的搜索和替换功能(据我所知)。
替换文件中的文本或在文件中间添加行的唯一方法是从第一次修改开始重写整个文件。不能在文件中间为新行"腾出空间"。
可靠的方法是将文件的内容复制到新文件中,边修改边修改,然后使用rename
用新文件覆盖旧文件。
相关文章:
- 我正在使用嵌套的while循环来解析具有多行的文本文件,但由于某种原因,它只通过第一行,我不知道为什么
- 如何使代码打印文本文件中的第一行?
- 如何在C++中以这种方式返回一行文本?
- 如何格式化我的文本文件以使其不会一遍又一遍地重复同一行?
- 逐字读取文本文件中的每一行并转换为 int(无限循环或崩溃?
- 需要从存档中读取一行文本.txt直到找到"hhh",然后转到下一行
- 如何在c ++中以一行(水平)打印两个文件的数据?如给定的.这两种形式来自两个不同的文本文件
- 到达分隔符时跳到文本文件的下一行
- 从文本文件中读取一行并将其存储在 C++ 中的 2D 矢量中
- 从文本文件中随机选取一行
- 以 LPCTSTR 开头编写另一行文本的最佳方法是什么?
- C++ ->尝试逐字阅读一行文本。如何使指针等效于用于存储输入的当前二维数组
- 如何让控制台在输入一行文本时输出某些内容
- 如何使用预处理器从源文件中获取一行文本
- 用c++将文件中的一行文本复制到字符串中
- 如何在控制台项目中重写一行文本?c++
- 如何从文件中读取一行文本而不跳过空行?
- 使用正则表达式从C++中的一行文本中提取数据
- 如何在不知道一行文本有多少元素的情况下读取每个元素?(c++)
- 在C++中读取一些整数,然后读取一行文本