2015-11-01 2 views
0

У меня есть простая пользовательская функция ввода, которая считывает то, что пользователь вводит, игнорируя любой ввод и принимая первый символ, с которым он сталкивается. Я использую оператор cin.ignore, потому что это часть меню, и я хочу воспроизвести меню, если они не вводят ни один из заданных параметров, но только один раз. Теперь я в основном хочу иметь if-statement, который является истинным, если пользователь вводит только один символ (он может вводить несколько ввода перед этим символом), поэтому я хотел использовать что-то вроде sizeof или length, но я не мог его получить работать. Может ли кто-нибудь помочь в этом? Это будет высоко ценится. Кроме того, если что-то должно измениться относительно формулировки вопроса, пожалуйста, дайте мне знать. Заранее спасибо.Попытка проверить размер некоторого оператора cin

char Interface::leesin () { 
char invoer; 
do { 
    invoer = cin.get(); 
} while (invoer == '\n'); 
cin.ignore(MAX,'\n'); 
return invoer; 
} 

ответ

0

следующий фрагмент кода, посредством которого пользователь будет представлен консольным меню и должен ввести символ. Cin будет читать только 1 символ, а затем программа может выполнить некоторую обработку с помощью этого символа. Цикл прекратится, когда пользователь вводит символ «9».

#include <iostream> 
using namespace std; 

int main() { 
    char ch; 

    do { 
     //print menu here 

     cin >> ch; // take in one char only 

     //perform action based on ch 

    } while (ch != '9'); 


    return 0; 
} 
+0

Не могли бы вы добавить какое-то объяснение в свой ответ, чтобы другие пользователи могли понять ваш код. – Brody

+0

уверен, спасибо за подсказку –