Я пытаюсь использовать getline(), но после ввода курсора 1-й записи не ждите 2-го названия страны, оно пропускается и переходит на название столицы. Где моя ошибка. Если я войду
Страна: Индия
Столица:Дели
Столица: 57382
он принимает это значение без каких-либо проблем, но курсор не ждет следующей страны, он сразу переходит на столицу после ввода значения на душу населения.
#include<iostream.h>
#include<conio.h>
#include <string.h>
struct country
{
char nm[30];
char capital[30];
float income;
};
void main()
{
country c[5];
clrscr();
for( int i=0; i<5 ; i++)
{
cout << "\n Country's name : ";
cin.getline(c[i].nm, 30);
cout << "\n Country's capital :";
cin.getline(c[i].capital,30);
system("cls");
cout << "\n Per capita income :";
cin >> c[i].income;
}
Я изменил код, добавив cin.ignore();
for( int i=0; i<5 ; i++)
{
cout << "\n Country's name : ";
cin.getline(c[i].nm, 30);
cin.ignore();
cout << "\n Country's capital :";
cin.getline(c[i].capital,30);
cin.ignore();
cout << "\n Per capita income :";
cin >> c[i].income;
cin.ignore();
}
Но после этого getline() ожидает следующую страну, но теперь она ожидает после каждого ввода страны, столицы и капитала. Значит я вхожу
Страна:Индия //Нажмите ввод //ожидание, и я нажала ввод здесь
Capital:Delhi //Нажмите ввод //ожидание, и я нажала ввод здесь
Capita: 32323 //Нажмите ввод //ожидание, я нажал ввод здесь
То же самое 5 раз.