如何在C ++中打印\“

时间:2011-11-06 19:31:15

标签: c++ printing ofstream quotations

我需要打印一个完全正确的字符串:

std::string("-I\"/path/to/dir\" ");

基本上,我需要这样做,因为我使用C ++代码生成C ++代码。

我想通过ofstream编写上面的字符串,所以像

 ofstream fout;
 fout << the_string << endl;

问题是我无法在字符串中执行\\"

4 个答案:

答案 0 :(得分:5)

只需转义斜杠以及引号!即\" - &gt; \\\"

fout << "std::string(\"-I\\\"/path/to/dir\\\" \");" << std::endl;

在C ++ 0x / C ++ 11

fout << R"(std::string("-I\"/path/to/dir\" ");)" << std::endl;

使用 raw string literal 1

查看在http://ideone.com/TgtZK

实时测试的两个版本

1 毫无疑问,ideone.com和stackoverflow的语法高亮显示还没有准备好:)

答案 1 :(得分:1)

这有效:

#include <iostream>

using std::cout;
using std::endl;

int main() {
  cout << "std::string(\"-I\\\"/path/to/dir\\\" \");" << endl;
  return 0;
}

印刷

std::string("-I\"/path/to/dir\" ");

重点是:你需要同时删除斜杠和引号。

答案 2 :(得分:0)

我希望我能正确理解你的问题:

逃脱\并逃离"

\\\"

答案 3 :(得分:0)

您可能想尝试添加额外的“/”字符,因为单个“/”不会被解析为字符串。我认为它应该有用(我是Java / C#的家伙,我自己偶尔遇到过这个问题)。