Считывание нескольких целых чисел, затем строки текста на C ++
Вопрос
Я читаю входные данные в программе на 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);
может сработать и для вас