我有一个这样的字符串:
string s = "\t Hello \n";
当我打印它然后它给了我一个标签然后你好然后一个新线。但是,无论如何我可以打印它,以便在控制台中看到它:
\t Hello \n
换句话说,我希望字符串忽略转义字符并将其视为实际字符串?
答案 0 :(得分:0)
你需要转义反斜杠,所以它看起来像这样
awk -F'=' '{print ($NF=="" ? "Error" : $NF)}' file
答案 1 :(得分:0)
使用 doublebackslash ,因为\\
doublebackslash会产生\
单反斜杠。
string s = "\\t Hello \\n";
答案 2 :(得分:0)
换句话说,我希望字符串忽略转义字符并将其视为实际字符串?
如果字符串是硬编码的,如您所示,您可以修改它以使用:
string s = "\\t Hello \\n";
如果您希望能够处理程序中抛出的任何字符串,则必须编写一个函数并处理该语言允许的所有转义序列。
std::ostream& writeString(std::ostream& out, std::string const& s)
{
for ( auto ch : s )
{
switch (ch)
{
case '\'':
out << "\\'";
break;
case '\"':
out << "\\\"";
break;
case '\?':
out << "\\?";
break;
case '\\':
out << "\\\\";
break;
case '\a':
out << "\\a";
break;
case '\b':
out << "\\b";
break;
case '\f':
out << "\\f";
break;
case '\n':
out << "\\n";
break;
case '\r':
out << "\\r";
break;
case '\t':
out << "\\t";
break;
case '\v':
out << "\\v";
break;
default:
out << ch;
}
}
return out;
}
将其用作:
writeString(std::cout, s);