2014-01-16 2 views
0

Я новичок в C++ и программировании Я продолжаю получать ошибку. Я не могу сравнивать char и постоянные символы. Любая помощь будет оценена.Сравнение 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 "' проверяет charcter в 'a' на указатель на строку,' "1" '. – Ned

3

Также у вас есть двойные кавычки внутри строки вы находитесь пытаясь распечатать. Вам нужно избегать их, написав \".

3

Вы сравниваете символ с массивом символов («1» - это массив символов). Лучше всего, если вы, вероятно, измените свой оператор if на:

if (a == '1') 

, который должен решить вашу проблему.

Кроме того, вам не нужны точки с запятой перед инструкциями cout. ; должен идти в конце заявления, а не перед ним.

Кроме того, кавычки внутри массивов символов должны быть экранированы путем помещения \ перед ними. (\ ")

+0

спасибо (на самом деле это LI не заметил, что это похоже на 1) – sergiocava

Смежные вопросы