Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

how to print \" in C++

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.

like image 573
user788171 Avatar asked Feb 23 '23 12:02

user788171


1 Answers

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 :)

like image 191
sehe Avatar answered Mar 02 '23 17:03

sehe