Чтение некоторых целых чисел, затем строки текста в C ++ - PullRequest
1 голос
/ 02 октября 2008

Я читаю ввод в программе на C ++. Сначала несколько целых чисел, затем строка. Когда я пытаюсь прочитать строку с getline(cin,stringname);, она не читает строку, которую вводит пользователь: вместо этого я получаю пустую строку, когда пользователь нажал Введите после ввода целых чисел.

cin>>track.day; //Int
cin>>track.seriesday; //Int
getline(cin,track.comment); //String

Как очистить cin (cin.clear() не работает), чтобы строка не заполнялась клавишей "ввод"?

Это нормальный прием ввода, ничего особенного в начале кода, У меня была такая проблема, но я забыл решение Мне нужно как-то очистить cin, чтобы строка не заполнилась клавишей "enter".

1 Ответ

2 голосов
/ 02 октября 2008

Я думаю, что ваш чек из целых не читает новую строку перед предложением. cin пропускает начальные пробелы и прекращает чтение числа, когда встречается нецифровка, включая пробелы.

Итак:

std::cin >> num1;
std::cin >> num2;
std::cin.ignore(INT_MAX, '\n'); // ignore the new line which follows num2
std::getline(std::cin, sentence);

может работать на вас

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...