C++ 如何删除错误:应在';之前使用主表达式';代币
请帮助我删除此错误我创建了这两个结构,当我尝试使用cin时,它显示了此错误我如何删除此错误,还请告诉我如何使用cin.getline和get()在输入中获取字符串C++ 如何删除错误:应在';之前使用主表达式';代币,c++,C++,请帮助我删除此错误我创建了这两个结构,当我尝试使用cin时,它显示了此错误我如何删除此错误,还请告诉我如何使用cin.getline和get()在输入中获取字符串 #包括 使用名称空间std; 结构日期//日期结构 { 国际日; 整月; 国际年; }; struct Employee//Employee结构 { int-Id; 字符名[40]; 国际日期; 性别; char-Des[40]; }; void Setter(Employee E)//用于在Employee中设置值的函数 { cou
#包括
使用名称空间std;
结构日期//日期结构
{
国际日;
整月;
国际年;
};
struct Employee//Employee结构
{
int-Id;
字符名[40];
国际日期;
性别;
char-Des[40];
};
void Setter(Employee E)//用于在Employee中设置值的函数
{
coutEmployee.Id;
coutEmployee.Name;
库坦波耶。性别;
库坦波耶德;
coutEmployee.Date.day>>Employee.Date.month>>Employee.Date.year;
}
int main()//main
{
雇员el;
Setter(el);//调用函数
返回0;
}
Employee
是一个类型名,它本身没有成员可以读取数据。
使用变量访问成员
此外,您可能希望使用引用来修改调用者的局部变量。
在要使用引用的类型名称后添加&
void Setter(Employee& E) //function for setting value in Employees
{
cout<<"Enter Id:";
cin>>E.Id;
cout<<"Enter Name:";
cin>>E.Name;
cout<<"Enter Gender:";
cin>>E.Gender;
cout<<"Enter Designation:";
cin>>E.Des;
cout<<"Enter Date of joining(DD/MM/YYYY):";
//cin>>E.Date.day>>E.Date.month>>E.Date.year;
}
是错误的,因为
E.Date
的类型是int
,并且它没有成员。您必须更改结构的声明,以使结构保留一个日期(或三个额外的整数)。非常感谢您注意E.date.day
仍然不起作用。如何使它起作用then@Hamid我想您应该添加一个类型为Date
的成员,并将数据读入其中。与Name
类似的问题,除非OP只需要名字或姓氏。非常相似:将Employee
更改为E
,这很简单。将您的类名和属性都大写会让其他人望而却步。通常情况下,属性和变量以小写字母开头要传统得多,如日期示例中所示。此外,40个字符的名字是疯狂的短。是否有任何理由不在此处使用std::string
?这比复制C风格的字符串缓冲区要好得多。
void Setter(Employee& E) //function for setting value in Employees
{
cout<<"Enter Id:";
cin>>E.Id;
cout<<"Enter Name:";
cin>>E.Name;
cout<<"Enter Gender:";
cin>>E.Gender;
cout<<"Enter Designation:";
cin>>E.Des;
cout<<"Enter Date of joining(DD/MM/YYYY):";
//cin>>E.Date.day>>E.Date.month>>E.Date.year;
}
cin>>E.Date.day>>E.Date.month>>E.Date.year;