std:string str("text1\; text2\;");
为什么VS2005会说; unrecognized character escape sequence.
请指教,谢谢。
答案 0 :(得分:13)
因为这是错误的:
std:string str("text1\; text2\;");
这是正确的:
std::string str("text1; text2;");
标准后的两个冒号
答案 1 :(得分:5)
无需转义分号
答案 2 :(得分:3)
只要把分号放在没有反斜杠的地方:
std::string str("text1; text2;");
答案 3 :(得分:3)
分号在C字符串中具有绝对 no 的意义;他们只是普通角色。如果你需要在字符串中加一个反斜杠,因为后来需要它,那就是前面需要反斜杠的反斜杠。
std::string str("text1\\; text2\\;");
那是因为\;
不是C ++中公认的转义序列;当你把它放进去时,编译器正确地想知道你在说什么。