C++ 如何删除错误:应在';之前使用主表达式';代币

C++ 如何删除错误:应在';之前使用主表达式';代币,c++,C++,请帮助我删除此错误我创建了这两个结构,当我尝试使用cin时,它显示了此错误我如何删除此错误,还请告诉我如何使用cin.getline和get()在输入中获取字符串 #包括 使用名称空间std; 结构日期//日期结构 { 国际日; 整月; 国际年; }; struct Employee//Employee结构 { int-Id; 字符名[40]; 国际日期; 性别; char-Des[40]; }; void Setter(Employee E)//用于在Employee中设置值的函数 { cou

请帮助我删除此错误我创建了这两个结构,当我尝试使用cin时,它显示了此错误我如何删除此错误,还请告诉我如何使用cin.getline和get()在输入中获取字符串

#包括
使用名称空间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;