Я пишу простую программу, которая просит пользователя ввести букву. И тогда я хочу, чтобы он ввел фразу. Когда это всего лишь одна строка, у меня нет проблем.Попросить пользователя ввести символ, а затем строку
char c;
string s;
cin >> c;
cin >> s;
Но когда я хочу фразу
cin >> c;
getline(cin, s);
Когда я запускаю программу после того, как пользователь вводит букву и хиты войти я не получаю шанс ввести фразу. Конечно, если я набираю символ и вводим фразу после пробела, программа работает нормально.
Наоборот, когда я вводил символ, а затем вводил одну строку после пробела, используя первый метод, он не записывает строку.
Зачем это происходит?
Используйте 'cin.ignore()' ... или просто перестаньте смешивать '>>' и 'getline'. Используйте один из двух, но не оба. –