C++删除文件中的字符或替换某一行

C++怎么删除文件中的某一位置的字符或者替换指定的行?
知道将文件移到另外一个文件读字符串删除内容再重写的写法,但是我想用文件的指针直接对文件中某一位置的内容进行操作

img


主要是这样写后,发现文件并不能识别出退格符:

img


下面是运行后的结果:

img

感谢邀请
以下是删除某行或修改某行的代码,供参考

#include<sstream>
#include<string>
#include<fstream>
using namespace std;

// 根据文件行第一个词(即名字)来删除,可修改为根据行号或其他
void delLine(string file_name, string name) {
    ifstream in(file_name);  // 以读方式打开文件

    string data = "";  // 保存文件内容
    string line, tmp;
    while (getline(in, line)) {
        istringstream is(line);
        is >> tmp;
        if (tmp == name)
            ;  // 空语句,无任何作用
        else
            data += (line+"\n");
    }
    in.close();  // 关闭文件
    ofstream os(file_name);  // 以写方式打开文件,会删掉文件中的所有内容
    os << data;  // 写入文件
    os.close();
}

// 根据name参数确定修改哪一行,可根据需求调整
void changeLine(string file_name, string name, string passward="", string new_name="") {
    ifstream in(file_name);

    string data = "";
    string line, tmp;
    while (getline(in, line)) {
        istringstream is(line);
        is >> tmp;
        if (tmp == name) {
            if (new_name.empty())  // 判断有无修改name
                data += name;
            else
                data += new_name;
            data += " ";
            is >> tmp;
            if (passward.empty())  // 判断有无修改password
                data += tmp;
            else
                data += passward;
            data += "\n";
        }
        else
            data += (line + "\n");
    }
    in.close();
    ofstream os(file_name);
    os << data;
    os.close();
}

c++中删除指定的字符可以用正则表达式,regex_replace(std::string str,std::regex reg,std::string replace),参数的意思分别是
参数1:std::string: 返回值:为原字符串string执行 替换规则后 输出的新的字符串str
参数2:std::regex reg:替换规则中 被替换 的 原目标字符或字符串
参数3:std::string replace 替换规则中 替换 的 新目标字符或字符串
具体的用法可以看我的博客

所谓修改删除文件a某位置的内容,其实是读打开文件a,再将‘a中修改删除位置之前的内容+修改删除的内容+a中修改删除位置之后的内容’保存到文件b,关闭文件a,删除文件a,将文件b改名为与之前文件a相同的名字,仅此而已。▼ http://bbs.csdn.net/topics/391975224