cout — Почему это & ​​quot; Нажмите Enter, чтобы продолжить & quot; код в C ++ не работает?

Итак, я делал простую викторину для детей на C ++ (я действительно новичок в программировании). Я хотел, чтобы пользователь нажимал клавишу Enter после первого вопроса, и только после нажатия клавиши Enter второй вопрос виден. Но по ряду причин C ++ не ждет, когда пользователь введет вывод в оператор cin, и автоматически выводит следующий вопрос.

Вот код:

cout << "Q1. Which of these languages is not used to make Computer Software?" << endl;
cout << "a. Python" << endl;
cout << "b. Java" << endl;
cout << "c. C++" << endl;
cout << "d. HTML" << endl;
cout << "" << endl;
cin >> ans;
cout << "" << endl;
cout << "Press Enter to Continue";
cin.ignore();

3

Решение

Возможно, вы уже ввели «ввод» после предоставления некоторых данных для ans, В этом случае cin.ignore() прочтем «войти» и сразу вернемся. Поэтому вы хотели бы другой cin.ignore() в ожидании еще одного «войти».

0

Другие решения

Скорее всего, вы вошли Войти после ответа / ввода (одним словом). Итак, когда вы нажимаете Войти, занимает анс строка как ввод и обрабатывает следующую новую строку как разделитель.
В результате, новая строка не читается и остается во входном буфере, который автоматически принимается как следующий ввод. То есть, cin.ignore () игнорируйте этот символ новой строки, и управление переходит к следующим инструкциям.

Чтобы исправить это, используйте cin.getline (ANS)/getline (cin, ans) вместо CIN или использовать другой cin.ignore () игнорировать ваш следующий Войти («Нажмите Enter, чтобы продолжить»).

1

По вопросам рекламы [email protected]