有没有办法将字符串打印为Literal?

时间:2018-06-11 15:15:14

标签: c++ c++11 literals

如你所知,我们可以使用这样的东西:

 string s = L("some\nstr\t");

我的问题是,是否有办法使用文字打印字符串。例如:

string s = "s\nsome\n"
cout<< L(s); // the output printed should be s\nsome\n and not new lines

谢谢。

2 个答案:

答案 0 :(得分:1)

是的,

string s = "Here is \\nan \\n example"
cout<< s;

答案 1 :(得分:1)

弗朗索瓦&#39;答案已经很好了,但我想详细说明这里发生的事情...

当您将\n放入字符串中时,即单个字符\正在说&#34;不要像往常那样对待接下来发生的任何事情,逃避它。&#34;转义n是换行符,因此\n是换行符。

因此,如果您想在字符串中使用\,那么您将如何获得它?通常这被视为转义字符,但我们希望它只是一个常规字符。那我们该怎么做呢?我们逃脱它! \\将被解释为单个\字符。

因此,如果您希望打印s\nsome\n,则需要将字符串构造为"s\\nsome\\n"。请注意,n未被转义,转义字符为!