Getline игнорирует первый символ при использовании cin.ignore () - PullRequest
0 голосов
/ 11 марта 2020

Я пытаюсь ввести информацию в структуру, такую ​​как имя, адрес, контактный номер и т. Д. c. но происходит то, что первый символ имени первого сотрудника стирается, а другие сотрудники имеют полные имена

    void input(){
        char ans;
        int i=0;
        int x=1;
        char num[2];
        char temp1[5] = "E0";
        char id1[5] = "E0";


        do{
            system ("cls");
            if (x<10){
                strncpy(temp1,id1,1);
            }

            cout<< "Employee Number: " << temp1 << x;
            itoa(x,num,10);
            strcat (temp1,num);
            strcpy(emp[i].num,temp1);
            cout<< endl;
            cout<< "Name: ";
            cin.ignore();
            cin.getline(emp[i].name,99);
            cout<<"Address: ";  
            cin.getline(emp[i].add, 99);
            cout<<"Contact Number: ";
            cin>> emp[i].connum; 
            cout<<"Department: ";
            cin.ignore();
            cin.getline(emp[i].dept,99);
            cout<<"Position: ";
            cin.getline(emp[i].pos,99);
            cout<<"Date Started: ";
            cin>> emp[i].date;
            cout<<"Rate per Day: ";
            cin>>emp[i].rateperd;
            cout<< fixed << setprecision(2);
            cout<<"Rate per Hour: ";
            emp[i].rateperh=emp[i].rateperd/8;
            cout<<emp[i].rateperh<<endl;
            cout<<"Overtime Rate: ";
            emp[i].otrate=emp[i].rateperh*1.5;
            cout<< emp[i].otrate<<endl;
            i++;
            x++;
            strcpy(temp1,id1);
            cout<< "Would you like to ADD another EMPLOEE (Y/N)?";
            cin>> ans;
        }while (ans == 'Y' || ans == 'y');
    }
...