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);
}