Программа игнорирует getline если есть if [дубликат]

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

Если код такой:

void rewrite(string *b) {
        string c;
        getline(cin, c);
        *b = c;
    }
    
    int main()
    {
        string b;
        
        cout << "Please enter a string" << endl;
        getline(cin, b);
        rewrite(&b);
        cout << b;

То программа работает отлично. А если такой:

    void rewrite(string *b) {
                string c;
                getline(cin, c);
                *b = c;
            }
            
            int main()
            {
                string b;
                
                cout << "Please enter a string" << endl;
                getline(cin, b);
char userinput;
    cin >> userinput;
                if (userinput == 'f') {
            rewrite(&b);
            cout << b;
        }

то программа игнорирует getline из функции rewrite. Сама программа должна перезаписывать строку на новую, которую введет пользователь. Переменная userinput нужна для создания консольного меню. Например, при вводе f в консоль запускалась данная функция ввода новой строки, при вводе другого char другая функция и тд.

Answer 1
char userinput;
    cin >> userinput;
    cin.ignore();

Помогло добавление cin.ignore(); после cin >> как сказал пользователь EOF

READ ALSO
Чтение/запись в Эксель &quot;xlsx&quot; в рамках xml/zip

Чтение/запись в Эксель "xlsx" в рамках xml/zip

Подскажите пожалуйста по записи и чтению данных из ексель формата xlsx:

112
Метод Хоару быстрая сортировка С++

Метод Хоару быстрая сортировка С++

Нужно сортировать рандомно сгенерированные числа через очередьТ

187
Написать формулу по вычислению площади многоугольника с определенным рядом условий

Написать формулу по вычислению площади многоугольника с определенным рядом условий

Я новичок в плюсахВводится количество вершин многоугольника

163
С++, матрица, задача

С++, матрица, задача

Помогите, пожалуйста, создать программу на базе с++Разбираюсь второй день - уже голова от этих матриц болит

172