Подтверждение, если один символ является символом

Я хочу проверить, является ли символ на самом деле символом. Когда пользователь вводит строку букв, программа "abc" скажет, что пользователь должен ввести один символ.

Я думал об использовании

if(sizeof(userLetter != 1))
{
    cout << "Enter only a single letter."
}

Проблема в том, что userLetter инициализируется как символ, он автоматически обрезает оставшиеся буквы и считает, что пользователь вводит только одну букву.

Есть ли способ проверить, действительно ли пользователь вводит только 1 букву без инициализации userLetter в виде строки?

1 ответ

Решение

Если вы читаете символ, он будет читать только один и сохранять следующие символы в буфере.

Если вы хотите взять все, что пользователь вводит, пока он не нажмет первый ввод, вам нужно получить строку:

 string line; 
 while (getline(cin, line) && (line.length()==0 || line.length()>1) )  
    cout << "Enter only a single letter..."<<endl; 

Когда это закончится успешно, получите первый символ строки с userLetter = line[0];

Другие вопросы по тегам