c ++在文本内部用\读取文件

时间:2015-07-03 15:33:41

标签: c++ string escaping fstream

我需要一个小问题的帮助。 我写了一个小程序,它将.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();
}

1 个答案:

答案 0 :(得分:0)

您应该尝试使用unicode版本的getline,或者尝试将ios::binary添加到流构造函数标记中。

有关详细信息,请参阅此article

但是,如果从stdin或文件中读取类似“\ 0”的字符串,则应将其视为两个单独的字符:'\'和'0'。您无需进行其他处理。

转义字符仅用于字符串/字符文字。也就是说,当你想在源代码中硬编码时。