c ++读取文本中带有\的文件
c++ reading file with \ inside the text
我需要帮助解决一个小问题。
我编写了一个小程序,将 .rd 文件中的每一行文本读取为一个字符串。但是文本里面有一些 \ 并且当我输出字符串时程序认为 \ 是转义字符。
如何获取原文?
程序运行没有错误。
这是我的一小段代码:
string find="something";
string replace="something2";
string line="";
fstream myfile;
myfile.open ("file.rb");
if (myfile.is_open())
{
while (getline(myfile,line))
{
cout << line << '\n';
if(line == find)
{
myfile << replace;
}
else
{
myfile << line;
}
}
myfile.close();
}
您应该尝试使用 unicode 版本的 getline 或者您可以尝试将 ios::binary
添加到您的流构造函数标志中。
查看此article了解更多信息。
但是,如果您从标准输入或文件中读入类似“\0”的字符串,则应将其视为两个单独的字符:“\”和“0”。您无需进行任何额外处理。
转义字符仅用于 string/character 文字。也就是说,当您想将某些内容硬编码到您的源代码中时。
我需要帮助解决一个小问题。 我编写了一个小程序,将 .rd 文件中的每一行文本读取为一个字符串。但是文本里面有一些 \ 并且当我输出字符串时程序认为 \ 是转义字符。
如何获取原文?
程序运行没有错误。
这是我的一小段代码:
string find="something";
string replace="something2";
string line="";
fstream myfile;
myfile.open ("file.rb");
if (myfile.is_open())
{
while (getline(myfile,line))
{
cout << line << '\n';
if(line == find)
{
myfile << replace;
}
else
{
myfile << line;
}
}
myfile.close();
}
您应该尝试使用 unicode 版本的 getline 或者您可以尝试将 ios::binary
添加到您的流构造函数标志中。
查看此article了解更多信息。
但是,如果您从标准输入或文件中读入类似“\0”的字符串,则应将其视为两个单独的字符:“\”和“0”。您无需进行任何额外处理。
转义字符仅用于 string/character 文字。也就是说,当您想将某些内容硬编码到您的源代码中时。