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

StackOverflow https://stackoverflow.com/questions/164022

Вопрос

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

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

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

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

Это было полезно?

Решение

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top