如何修改文本文件中的文本

时间:2011-02-28 08:12:46

标签: visual-c++

我有一个包含以下行的文本文件:

    C:\Program Files\app\

我想读它成为这个:

    C:\\Program Files\\app\\

我知道如何在visual c ++中读取文件,但是每次创建斜杠时如何添加斜杠()。

    char str[200];
    fstream file_op("C:\\path.txt",ios::in);
    file_op >> str;
    file_op.close();

3 个答案:

答案 0 :(得分:2)

使用Boost:

#include <boost/algorithm/string/replace.hpp>
#include <fstream>
using namespace std;
int main(int argc, char const* argv[]) {
  string line;
  ifstream file_op("D:\\path.txt");
  ofstream file_out("D:\\out.txt");
  while( getline(file_op, line) ) {
    boost::replace_all(line, "\\", "\\\\");
    file_out << line << '\n';
  }
  // file_op and file_out are closed on exit   
  return 0;
}

答案 1 :(得分:1)

最简单的方法是循环:

char newPath[MAX_PATH];
int newCount = 0;
for(int i=0; i < strlen(str); i++)
{

    if(str[i] == '\')
    {
        newPath[newCount++] = str[i];
    }
    newPath[newCount++] = str[i];
}

请注意,您无法就地更改文件。您必须将新字符串写入新文件。我没有使用boost或任何其他库,因为默认情况下它们不是VisualC ++的一部分,而且你的标签表明你需要这个用于VisualC ++

答案 2 :(得分:-1)

在VB中你可以使用String.Split()替换其他字符,你可能想尝试这个或谷歌使用“正则表达式”(不知道使用者现在使用但我知道它旨在替换和编辑字符串)