how to print \" in C++

user788171 picture user788171 · Nov 6, 2011 · Viewed 26.1k times · Source

I need to print a string that says exactly:

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

Basically, I need to do this because I am using C++ code to generate C++ code.

I want to write the above string via an ofstream, so something like

 ofstream fout;
 fout << the_string << endl;

The problem is that I cannot do \\" inside a string.

Answer

sehe picture sehe · Nov 6, 2011

Just escape the slash as well as the quotes! I.e. \" --> \\\"

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

in C++0x/C++11

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

which uses a raw string literal1

See both versions tested live at http://ideone.com/TgtZK  

1 For which unsurprisingly the syntax highlighters for ideone.com and stackoverflow are not yet prepared :)