Делаю так:
class clsEmployee
{
private:
string sName;
unsigned int uiEmployeeID;
static unsigned int uiEmpCounter;
public:
clsEmployee()
{
uiEmpCounter++;
uiEmployeeID = uiEmpCounter;
}
void Print()
{
cout << "Name " << setw(40) << sName << " ID " << uiEmployeeID << endl;
}
void Set()
{
cout << "Enter Name of the employeer" << endl;
getline(cin, sName, '\n');
}
};
unsigned int clsEmployee::uiEmpCounter;
int main()
{
short siCounter = 0;
clsEmployee Employee[10];
string strEmpName;
char cCheck;
do
{
Employee[siCounter].Set();
if (siCounter == 9)
{
cout << "Enough!" << endl;
break;
}
else
{
cout << "Wanna enter more? (y/n) >";
cin >> cCheck;
}
siCounter++;
for ( int i = 0; i < siCounter; i++)
{
Employee[i].Print();
}
return 0;
}
Судя по коду, должно попросить 10 раз ввести данные и вывести их, но происходит следующее:
Enter Name of the employeer
a
Wanna enter more? (y/n) >y
Enter Name of the employeer
Wanna enter more? (y/n) >b
Enter Name of the employeer
Wanna enter more? (y/n) >c
Enter Name of the employeer
Wanna enter more? (y/n) >d
Enter Name of the employeer
Wanna enter more? (y/n) >e
Enter Name of the employeer
Wanna enter more? (y/n) >f
Enter Name of the employeer
Wanna enter more? (y/n) >g
Enter Name of the employeer
Wanna enter more? (y/n) >h
Enter Name of the employeer
Wanna enter more? (y/n) >i
Enter Name of the employeer
Enough!
Name a ID 1
Name ID 2
Name ID 3
Name ID 4
Name ID 5
Name ID 6
Name ID 7
Name ID 8
Name ID 9
я как-то неправильно getline использую?