【问题标题】:c++ reading file with \ inside the textc ++在文本中使用\读取文件
【发布时间】:2015-07-03 15:33:41
【问题描述】:

我需要帮助解决一个小问题。 我编写了一个小程序,它将 .rd 文件中的每一行文本读取为字符串。但是文本里面有一些\,当我输出字符串时,程序认为\是转义字符。

如何获取原文?

程序运行没有错误。

这是我的代码的一个小sn-p:

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();
}

【问题讨论】:

  • 转义转义字符
  • 但该字符位于我尝试阅读的文本中。我无法更改 .rb 文件来转义 rb 中的每个转义字符
  • 程序在其输出中解释转义序列似乎是最不寻常的。您是如何发现这种情况发生的?
  • 你正在写入你正在读取的同一个文件......

标签: c++ string escaping fstream


【解决方案1】:

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

请参阅此article 了解更多信息。

但是,如果您从标准输入或文件中读取“\0”之类的字符串,则应将其视为两个单独的字符:“\”和“0”。您无需进行额外的处理。

转义字符仅用于字符串/字符文字。也就是说,当您想将某些内容硬编码到您的源代码中时。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-15
    • 2014-09-03
    • 2017-05-02
    • 1970-01-01
    • 2011-01-10
    相关资源
    最近更新 更多