Bezdepbonusu7Программирование: статьи и ответы

Вопрос

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

Автор вопроса: CommunityОтветов: 1

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

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

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

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

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

c++stringinputnewlineiostream

Ответы

Ответ 1 · рейтинг 2 · Evan Teran

Я думаю, что ваш 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);

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

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы