【问题标题】:Problem with reading conversion characters in c++在 C++ 中读取转换字符的问题
【发布时间】:2011-02-02 08:15:10
【问题描述】:

我已经有一些代码了:

std::string str2("Hello\r\n");
 if (str2.find ("\r\n") != std::string::npos)
   Console::WriteLine("Enter!\n");

在控制台屏幕上: 输入!

一切都好,但是 如果我们从返回字符串的 xml.GetData() 创建 str2

std::string str2(xml.GetData());
 if (str2.find ("\r\n") != std::string::npos)
  Console::WriteLine("Enter!\n");

在控制台屏幕上: 空的

如何解析“\r\n”,例如从 xml.GetData()

【问题讨论】:

    标签: c++ string parsing stl


    【解决方案1】:

    这取决于您的 xml 数据如何处理行尾。它可能只是\n。尝试只搜索那个而不是 \r\n

    编辑:GetData() 不返回与当前节点关联的数据吗?除非您在实际元素/属性之外,否则这可能永远不会换行。

    【讨论】:

    • 我已经解决了这个问题。在“str2.find ("\r\n")”中我犯了致命错误。写:str2.find ("\\r\\n")
    【解决方案2】:

    这显然取决于您的 xml 类,并且您还没有指定您正在使用哪个库。无论如何,您显然可以打印出 str2 中各个字符的数值,以查看是否/如何表示/捕获换行符:即 (int)str2[i] 代表 i0str2.size() - 1 之间。

    很可能只是没有明确的“\r”(回车)的“\n”,隐约可能两个字符的顺序相反,或者其他一些标记已被替换。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-14
      • 2022-01-16
      • 1970-01-01
      • 2013-05-25
      • 1970-01-01
      相关资源
      最近更新 更多