2016-09-18 3 views
-2

Я делаю программу (слишком много свободного времени) о правилах и матрицах крамера. И где-то, у меня есть эта проблема, когда вам нужно будет ввести «Да» или «Нет». И если бы я набрал другие слова (например, lol), это не пошло бы иначе, если заявление или задать вопрос снова. Как ограничить ответы только да/нет?C++ If/else if statements

cout << "There! you have now your first equation! is it " << a << "x+" << b << "y=" << e << "? Is it? Yes/No"<<endl; 
cin >> z; 
if (z== "No") 
    { 
     while (z== "No") 
      { 
       cout << "what is the value of x?"<<endl; 
       cin >> a; 
       cout << "\n"<<endl; 
       cout << "what is the value of y?"<<endl; 
       cin >> b; 
       cout << "\n"<<endl; 
       cout << "what is the value of answer?"<<endl; 
       cin >> e; 
       cout << "\n"<<endl; 
       cout << "There! you have corrected your first equation! is it " << a << "x+" << b << "y=" << e << "? Is it? Yes/No"<<endl; 
       cin >> z; 
      } 
    } 
else if (z== "Yes") 
    { 
     cout << "We will now proceed!"<<endl; 
    } 

Я просто новичок в C++ с использованием CodeBlocks

+1

Вы не можете контролировать входные значения при приеме входного сигнала. Вы должны сначала принять ввод, и тогда вы можете проверить, правильно ли принят вход или нет. Вы можете создать предупреждение о неправильных входах. – Raman

+0

Какой тип 'z'? –

ответ

4

читать на делать во время цикла! Это пост-тестовый цикл, поэтому вы можете проверить, было ли z да или нет. http://www.cplusplus.com/doc/tutorial/control/

Основная идея: Ввод пользователя, когда пользовательский ввод НЕ равен да или нет.

Простой пример:

int x; 
do { 
    cout << "Please enter 1 or 0" << endl; 
    cin >> x; 
} while (x != 0 && x != 1);