在C++中如何用cout显示 、等特殊含义的控制字符?
问题:如何在C++中通过cout显示\r、\b这类终端控制符的文本形式?
你写的std::cout << "Purpose of \r";之所以显示为空,是因为\r是C++里的转义字符,作用是把控制台光标移到当前行的开头——输出完“Purpose of ”后,光标回到行首,后面没有新内容覆盖,看起来就像什么都没输出。
要把\r、\b这类控制符以文本形式(也就是显示成\r、\b这两个字符组合)输出,有两种简单方法:
双反斜杠转义:把控制符的反斜杠再转义一次,让编译器把它当成普通字符处理。比如:
std::cout << "Purpose of \\r";这样终端会直接显示
Purpose of \r。原始字符串字面量(C++11及以上支持):用
R"(内容)"包裹字符串,里面的反斜杠不会被解析成转义字符,写法更直观:std::cout << R"(Purpose of \r)";同样能正确显示目标文本。
对于\b退格符,处理逻辑完全一样——直接写\b会触发退格动作,要显示文本\b就用\\b或者原始字符串。
内容的提问来源于stack exchange,提问作者Meho buh
相关产品推荐
相关产品推荐

