C++ 从变量输出字符串文字
我想知道是否有可能从一个预设变量输出一个原始字符串,我不能改变它的值。例如:C++ 从变量输出字符串文字,c++,c++11,C++,C++11,我想知道是否有可能从一个预设变量输出一个原始字符串,我不能改变它的值。例如: string test = "test\ntest2"; cout << test; 是否可以运行与上述类似的代码,但更改cout语句以打印原始字符串,如下所示: test\ntest2 转义序列\x仅转换为一个字符 可能有一些平台的尾行字符打印为\n,但这完全取决于实现 然后将其转换为两个字符(\和x),意味着您必须修改字符串本身 最简单的方法是创建一个自定义函数 void print_all(std
string test = "test\ntest2";
cout << test;
是否可以运行与上述类似的代码,但更改cout语句以打印原始字符串,如下所示:
test\ntest2
转义序列
\x
仅转换为一个字符
可能有一些平台的尾行字符打印为\n
,但这完全取决于实现
然后将其转换为两个字符(\
和x
),意味着您必须修改字符串本身
最简单的方法是创建一个自定义函数
void print_all(std::string s)
{
for (char c : s) {
switch (c) {
case '\n' : std::cout << "\\n"; break;
case '\t' : std::cout << "\\t"; break;
// etc.. etc..
default : std::cout << c;
}
}
}
void print_all(std::string s)
{
用于(字符c:s){
开关(c){
案例“\n”:std::cout如果您有c++11,也可以使用原始字符串文本
#include <iostream>
using namespace std;
int main()
{
cout << R"(test\ntest2)" << endl;
return 0;
}
#包括
使用名称空间std;
int main()
{
基本转义“test\\ntest2”
如何?变量已设置,我无法更改它,正如我在问题中所述。我明白了。最后一段是误导性的,因为它暗示您可以更改文本。(但我编辑主要是为了收回我的投票…)您是要获取原始表示,还是只是一个明确的表示?蛮力方法是将字符串中出现的“\n”
替换为“\\n”
(然后对所有其他转义序列重复)。请参见代码的SO问题。我最初在帖子中有它,但它似乎已被编辑掉,但我根本无法访问存储在变量中的字符串,我必须使用变量声明
#include <iostream>
using namespace std;
int main()
{
cout << R"(test\ntest2)" << endl;
return 0;
}