2014-01-16 80 views
0

我是新來的c + +和編程我不斷收到錯誤。我無法比較char和常量字符。任何幫助將不勝感激。比較char和常量字符

char a; 
cout << " presentation"; 
cout << "blablabla do you want to go left (type "l") or right (type "r")"; 
cin >> a; 
if (a == "l") 
{ 
    cout << "blablabla fall down it and brake your neck"; 
} 
else 
{ 
    cout << "blablabla"; 
} 
+1

爲什麼你在前面的所有地方都有';' – Walls

+0

編譯和演示問題的代碼的任何可能性?甚至這個網站已經放棄了突出語法 –

回答

3

"1"是一個字符串,返回類型const char[](陣列)的對象不是一個const char

'1'是文字的一個字符

+0

是的,這意味着'a ==「1」'正在測試'a'中的字符串,指向字符串的指針,'「1」' – Ned

3

你也有你這樣的字符串內雙引號試圖打印。你需要通過編寫\"來逃避這些。

3

您正在比較一個字符與一個字符數組(「1」是一個字符數組)。最好的選擇是,可能會將您的if語句更改爲:

if (a == '1') 

應該解決您的問題。

此外,你不需要在cout語句前面的分號。 ;應該在聲明的最後,而不是在聲明的前面。

而且,char數組內的引號應該通過在它們前面放置\來逃脫。 (\「)

+0

謝謝(它實際上是一個LI沒有注意到它與1相似) – sergiocava