2008-10-02 2 views
1

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

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

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

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

+0

Ваш вопрос трудно понять. Просьба уточнить. – Lev 2008-10-02 19:15:11

+0

И предоставить фрагмент кода – Kena 2008-10-02 19:18:59

ответ

2

Я думаю, что ваш cin из ints не читает новую строку перед предложением. 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); 

может работать для вас

Смежные вопросы