2014-01-16 52 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