getline() чудит
От: DukeNukem3D Россия  
Дата: 19.05.08 06:00
Оценка:
Делаю так:

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 использую?
С уважением, Андрей
c++ getline()
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.