C++ Getline在使用cin.ignore()时忽略第一个字符
我试图将信息输入到一个结构中,如姓名、地址、联系电话等。但实际情况是,第一名员工姓名的第一个字符被删除,而其他员工的姓名是完整的C++ Getline在使用cin.ignore()时忽略第一个字符,c++,oop,structure,getline,c-strings,C++,Oop,Structure,Getline,C Strings,我试图将信息输入到一个结构中,如姓名、地址、联系电话等。但实际情况是,第一名员工姓名的第一个字符被删除,而其他员工的姓名是完整的 void input(){ char ans; int i=0; int x=1; char num[2]; char temp1[5] = "E0"; char id1[5] = "E0"; do{ system ("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');
}
void输入(){
查尔安斯;
int i=0;
int x=1;
字符数[2];
字符temp1[5]=“E0”;
字符id1[5]=“E0”;
做{
系统(“cls”);
如果(xcin.ignore();
忽略一个字符。将cin.ignore();
从当前位置移动到ans