Double slash // in paths - can I use single slash?
Asked Answered
T

3

5

I have a VS template with something like

string mypath = "C:\\custom\\file.jpg";

I'd like to make the C:\custom\ part with a template substitution parameter $userpath$. Is there any way I can avoid using double slashes?

What I'd like to write is:

string mypath = SOMETHING("C:\custom\file.jpg")

that doesn't get escaped with \c and \f and form a valid path. Is it possible?

Theater answered 25/6, 2013 at 17:48 Comment(1)
You could look at raw string literals, or you could just use a forward slash and have it be a little more portable.Fidellia
T
7

For paths you should be able to use a single forward slash as a separator:

std::string mypath = "c:/custom/file.jpg";
Therefore answered 25/6, 2013 at 18:12 Comment(0)
H
5

Try a raw string literal:

string mypath = R"(C:\custom\file.jpg)";
Hardball answered 25/6, 2013 at 17:52 Comment(0)
K
1

Try to get used of double backslash character, because in c++ all parser and compiler understand that. and if your VS template \\ doublebackslash produce a \ single backslash, use 4 backslash \\\\ to produce \\ doublebackslash correctly.

Knob answered 25/6, 2013 at 18:12 Comment(1)
It just doesn't work. For I am using the one slash, it thinks that I am escaping the next character. It's okay, so I am using the double slash, a-a-and… I am gettin the double slash! Not single, but the double! Just insane…Weatherboarding

© 2022 - 2024 — McMap. All rights reserved.