在创建Employee(struct)用户定义类型的变量时遇到问题。错误说不允许这样的struct类型成员。
struct Employee{
char name[100];
char address[100];
}emp[3];
int main(){
char ch;
int i=-1;
fstream in;
in.open("Muhammad.txt",ios::out|ios::binary|ios::ate);
do{
i++;
cout<<"\nEnter name:";cin.getline(emp.name[i],100);//error line
cout<<"\nEnter address:";cin.getline(emp.address[i],100);//error line
in.write( reinterpret_cast<char*>(&emp[i]),sizeof(Employee));
}while(ch=='y'||ch=='Y');
system("PAUSE");
return 0;
}
希望Employee对象可以正常创建
,但出现以下错误: [错误]请求'emp'中的成员'name',该成员是非类类型'Employee [3]'
答案 0 :(得分:4)
您声明了一个struct Employee
类型的三个元素组成的数组。
此构造
struct Employee{
char name[100];
char address[100];
}emp[3];
等同于
struct Employee{
char name[100];
char address[100];
};
Employee emp[3];
该数组的每个元素只有一个数据成员name
和address
。
所以你必须写个例子
getline(emp[i].name,100)
该循环的迭代次数不得超过三个。
此外,变量ch
未初始化,并且在循环中未更改。