我需要打印一个完全正确的字符串:
std::string("-I\"/path/to/dir\" ");
基本上,我需要这样做,因为我使用C ++代码生成C ++代码。
我想通过ofstream编写上面的字符串,所以像
ofstream fout;
fout << the_string << endl;
问题是我无法在字符串中执行\\"
。
答案 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
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#的家伙,我自己偶尔遇到过这个问题)。