Как очистить буфер ввода C++? [дубликат]

217
05 мая 2022, 22:40
На этот вопрос уже даны ответы здесь:
Сброс буфера ввода ("читает лишнюю [пустую] строку") (2 ответа)
Закрыт 1 год назад.

Есть вот такой недописанный код. После ввода количества member enter остается во входной очереди и не получается ввести name класса string с помощью getline. Как избавиться правильно от этого перехода к новой строке и ввести имя и фамилию. Можно не только избавиться от него, но может написать код как то по другому. Массивы не хочу использовать, хочу поработать с классом string.

#include <iostream>
#include <string>
using namespace std;
struct man
{
    string name;
    double sum;
};
int main()
{
    int member;
    cout << "Enter the number of members: ";
    cin >> member;
    cin.clear();
    man* ps = new man[member];
    for (int i = 0; i < member; i++)
    {
        cout << "Enter the first and last name of the member#" << i + 1;
        getline(cin,ps[i].name);
        cout << "Enter donation amount#" << i + 1;
        cin >> ps[i].sum;
    }
Answer 1

В общем разобрался. Этот enter можно отбросить введя просто cin.get().

READ ALSO
Как реализовать цикл нахождения простых чисел?

Как реализовать цикл нахождения простых чисел?

Даны N положительных целых чисел, которые не делятся ни на какие простые числа, кроме 2 и 3Удалить из массива числа так, чтобы из любых двух...

230
Сортировка строк с файла на С++

Сортировка строк с файла на С++

Есть файл в котором больше 3к строк, и нужно их отсортировать по количеству символовМой код:

199
Подсчёт количества цифр 1 в числе [закрыт]

Подсчёт количества цифр 1 в числе [закрыт]

Хотите улучшить этот вопрос? Обновите вопрос так, чтобы он вписывался в тематику Stack Overflow на русском

207
Qt запись/чтение байтов в файл

Qt запись/чтение байтов в файл

Мне надо повторить байт-код из языка JavaЕсли скомпилировать Java и открыть

188