我有一个包含以下行的文本文件:
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();
答案 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()
替换其他字符,你可能想尝试这个或谷歌使用“正则表达式”(不知道使用者现在使用但我知道它旨在替换和编辑字符串)