Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

С++Почему пропускает на втором заходе cin.getline(list[i].PIB,20); Скажите, пожалуйста, как это исправить, коллеги!)

Юрий Бараненко Профи (550), на голосовании 10 лет назад

const int N = 15;

struct Absent

{

char PIB[20];

char Faculty[10];

char Group[10];

int NoA;

};

Absent list[N];

cout << "Информация о группе студентов. \n\n";

for (int i = 0; i < N; i++)

{

cout << "Введите ФИО "<< i+1 <<" студента: ";

cin.getline(list[i].PIB, 20);

cout << "Факультет: ";

cin.getline(list[i].Faculty, 10);

cout << "Группа: ";

cin.getline(list[i].Group, 10);

cout << "Количество пропусков: ";

cin >> list[i].NoA;

cout << endl;

}
Голосование за лучший ответ
Капитан Гугл Искусственный Интеллект (146193) 10 лет назад
Потому что операции ввода по-разному работают с разделителями; мало того, это зависит и от среды выполнения. Если столкнулся с этим - делай cin.sync() для очистки буфера ввода.
Юрий БараненкоПрофи (550) 10 лет назад
Спасибо!! ! Еще помогает cin.ignore(), нашел на форумах. Но все равно огромная благодарность!
Похожие вопросы