У меня есть программа, которая просит пользователя вводить ввод несколько раз и сохраняет этот ввод в разных переменных char, а затем делает вещи для этих переменных.C++ Как ограничить ввод одним символом за раз?
Моя проблема заключается в том, что я хочу ограничить ввод данных для работы по одной переменной за раз. Например:
char a = 'a', b = 'b', c = 'c';
cout << "Enter a ";
cin >> a;
cout << "\nEnter b ";
cin >> b;
cout << "\nEnter c ";
cin >> c;
cout << "Entered chars were " << a << ", " << b << ", " << c;
Запуск этого, если пользователь вводит т у и (в том числе и промежутки между буквами) сделает программу для ввода т в переменную а, у в переменной Ь, а и в переменной с. По сути, это будет «проваливаться» и автоматически помещать значения для cin, а не просить пользователя сделать это для каждого из них.
Что я хочу, это проверить, что то, что вводит пользователь для переменной a, равно 1 char.
Я попытался использовать cin.good(), однако он возвращает 0 после ввода более одного символа для cin >> a; Я также пробовал использовать cin.get (a); а затем проверку для cin.good(). Это также возвращает 0, если пользователь вводит более одного символа.
Есть ли способ ограничить ввод для работы только для одной операции cin за раз?
Вы можете просто вызвать 'ignore', чтобы убить остальную часть ввода (медленно и болезненно). – chris
Используйте getline для получения одной строки за раз. Отбросьте любые избыточные значения в каждой строке. – john