首页 > 解决方案 > 从变量中输出字符串文字

问题描述

我想知道是否可以从我无法更改其值的预设变量中输出原始字符串。例如:

string test = "test\ntest2";
cout << test;

会输出

test
test2

是否可以运行与上面类似的代码,但更改 cout 语句以打印原始字符串,如下所示:

test\ntest2

标签: c++c++11

解决方案


一个转义序列\x只翻译成一个字符。

可能有一些平台打印了结束行字符,\n但这完全取决于实现。

然后将其转换为两个字符(\x),将意味着您必须修改它string本身。

最简单的方法是制作自定义函数。

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;
        }
    }
}

对于您关心的所有转义序列。

注意:与ctrl-xand不同, andx的值之间没有直接关联,至少在 ASCII 表中,因此需要一个语句。\xxswitch


推荐阅读