我想在此C ++程序中输入字符串,但以下代码不起作用。它不会将员工的姓名作为输入。它只是跳过。对不起,我是C ++的新手。
#include<iostream>
#include<string>
using namespace std;
int main()
{
int empid;
char name[50];
float sal;
cout<<"Enter the employee Id\n";
cin>>empid;
cout<<"Enter the Employee's name\n";
cin.getline(name,50);
cout<<"Enter the salary\n";
cin>>sal;
cout<<"Employee Details:"<<endl;
cout<<"ID : "<<empid<<endl;
cout<<"Name : "<<name<<endl;
cout<<"Salary : "<<sal;
return 0;
}
答案 0 :(得分:2)
您需要跳过以下行执行后留在输入缓冲区中的\n
字符:cin >> empid;
。要删除此字符,您需要在该行之后添加cin.ignore()
。
...
cout << "Enter the employee Id\n";
cin >> empid;
cin.ignore();
cout << "Enter the Employee's name\n";
...
答案 1 :(得分:1)
cin>>empid
将在输入流中保留回车符,然后在调用cin.getline
方法后立即将其拾取,以便立即退出。
如果您在代码生成的getline之前读取了一个字符,尽管这可能不是解决问题的最佳方法:)
cout<<"Enter the employee Id\n";
cin>>empid;
cout<<"Enter the Employee's name\n";
cin.get();
cin.getline(name,50);