2010-05-29 52 views
2
std:string str("text1\; text2\;"); 

爲什麼VS2005說; unrecognized character escape sequence.如何逃脫在C++分號字符串

請指教,謝謝。

+17

你爲什麼認爲它需要轉義? – 2010-05-29 08:11:17

回答

13

因爲這是錯誤的:

std:string str("text1\; text2\;"); 

這是正確的:

std::string str("text1; text2;"); 

兩個冒號af第三方

3

只要把分號沒有反斜槓:

std::string str("text1; text2;"); 
+1

不要忘記'std ::'前綴缺少冒號。 – Pieter 2010-05-29 08:24:18

5

沒有必要逃避分號

3

分號絕對有 C字符串的意義;他們只是普通人物。如果你需要在字符串中加一個反斜槓,因爲以後需要它,這就是前面需要反斜槓的反斜槓。

std::string str("text1\\; text2\\;"); 

這是因爲在C++中\;不是公認的轉義序列;編譯器正確地想要知道當你把它放在什麼地方時你在說什麼。