说我希望能够用格式化(即换行符,标签符号)来宣传
#include <iostream>
using namespace std;
string str;
int main()
{
getline(cin, str);
cout << str;
}
所以我会输入类似Hey\nThere
之类的内容,以便在嘿和那里之间获得换行符。但是,它会准确地吐出我输入的内容(Hey\nThere
)。是否有可能像我希望的那样对其进行宣传(见下文)?
Hey
There
答案 0 :(得分:1)
您必须自己处理输入字符串。一个简单的实现如下:
std::string UnescapeString( std::string input ){
size_t position = input.find("\\");
while( position != std::string::npos ){
//Make sure there's another character after the slash
if( position + 1 < input.size() ){
switch(input[position + 1]){
case 'n': input.replace( position, 2, "\n"); break;
case 't': input.replace( position, 2, "\t"); break;
case 'r': input.replace( position, 2, "\r"); break;
default: break;
}
}
position = input.find("\\", position + 1);
}
return input;
}
您当然可以为char转义序列,Unicode转义序列和其他可能需要的转义序列添加更复杂的解析规则。