Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Passing on a char* which contains a path


I'm trying to pass through several functions a string with a path but the every '\\' I put in the path becomes a single '\' in the inner function and I can't use it this way.
Is there a way to preserve the "\\" when entering a new function?
I'm using C++ on windows.
thanks :)

like image 826
Idov Avatar asked Dec 08 '22 00:12

Idov


1 Answers

Be prepared for some obfuscated answer.

The \ is the escape character (you have probably already encountered the \n escape sequence for example), and \\ is the escape sequence that represents a single \ character (in a sense, it can be understood as an escape of the escape character). If you really want to have \\ in your string, you'll have to use \\\\ :

std::cout << "\\\\something\\" << std::endl; /* prints "\\something\" */

Just to provide another example, suppose you'd like to have some " in a string. Writing :

const char *str = "Hello "World"";

will obviously not compile, and you will have to escape the " with a \ :

const char *str = "Hello \"World\"";
like image 180
icecrime Avatar answered Dec 11 '22 07:12

icecrime