Чтение некоторых целых чисел, а затем строки текста на С++

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

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

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

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


person Community    schedule 02.10.2008    source источник
comment
Ваш вопрос трудно понять. Просьба уточнить.   -  person Lev    schedule 02.10.2008
comment
Не могли бы вы вставить код, где вы читаете целые числа? Кроме того, какой компилятор вы используете и на какой платформе?   -  person dguaraglia    schedule 02.10.2008


Ответы (1)


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

So:

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

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

person Evan Teran    schedule 02.10.2008