C ++ iostream: использование ошибок ввода cin >> var и getline (cin, var)

m создает простое консольное приложение на C ++, которое получает строковые и символьные данные от пользователя. Для простоты я хотел бы использоватьстрока а такжеголец типы данных для передачи ввода из CIN в.

Чтобы получить строковые входы, ям, используяGetLine метод:

string var;
cin.ignore(); //I used ignore() because it prevents skipping a line after using cin >> var
getline(cin, var);

Чтобы получить ввод символов, ям, используяКин >> вар метод:

char var;
cin >> var;

Это работает нормально по большей части. Тем не менее, когда я ввожу строку с помощьюGetLine, он игнорирует первый символ моей строки.

Можно ли использоватьGetLine а такжеКин >> без использованияигнорироватьили метод, который я могу вызвать, чтобы убедиться, что мой первый символ нет пропустили?

Это полный пример кода, где я использую обаGetLine а такжеcin >>:

string firstName;
string lastName;
char gender = 'A';

cout < "First Name: ";
cin.ignore();
getline(cin, firstName);


cout < "Last Name: ";
cin.ignore();
getline(cin, lastName);

while(genderChar != 'M' && genderChar != 'F')
{
    cout < "Gender (M/F): ";
    cin >> genderChar;
    genderChar = toupper(genderChar);
}

Ответы на вопрос(4)

Ваш ответ на вопрос