Как изменить текст в текстовом файле - PullRequest
0 голосов
/ 28 февраля 2011

У меня есть текстовый файл, который содержит эту строку:

    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 ]

2 голосов
/ 28 февраля 2011

Использование 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 голос
/ 28 февраля 2011

Самый простой способ сделать это - использовать цикл:

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 ++

0 голосов
/ 28 февраля 2011

В VB вы можете использовать String.Split(), чтобы заменить некоторые символы на другие, вы можете попробовать это или Google для использования "регулярное выражение" (не знаю, использование пропперов сейчас, но я знаю, что он был разработан заменить и отредактировать строки)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...