Страницы

Поиск по вопросам

воскресенье, 14 апреля 2019 г.

Как прочитать строки с пробелами в цикле в С++?

Вопрос следующий. В цикле нужно читать строки, содержащие пробелы. Признак конца строки - символ '
'. Пробовал функции cin.getline(), gets(). Результат один - читает один раз, а затем зацикливание. Вот собственно код.
#include using namespace std;
int main() { int Exit = 1; char mes[20]; while (Exit) { cout << "Введите строку" << endl; cin.clear(); cin.getline(mes, 19, '
'); cout << "Вы ввели: " << mes << endl << "1 - продолжить
0 - выход" << endl; cin >> Exit; } return 0; }


Ответ

Классическая проблема. После того, как число было считано в переменную Exit, в буфере потока cin остался непрочитанный символ переноса
. Он-то в последующем чтении из потока все и портит. Его можно убрать, например, так cin >> Exit; cin.ignore (7777, '
');

Комментариев нет:

Отправить комментарий