struct student
{
char *name;
int roll_no;
};
student s1[3];
for(int i=0;i<3;i++)
{
cout<<"Enter name: ";
cin.getline(s1[i].name,'\n');
cout<<"\nEnter roll number : ";
cin>>s1[i].roll_no;
}
我想在&#34; char * name&#34;中输入全名,但这不起作用 我知道,我可以使用字符串,但有没有办法用char *?
答案 0 :(得分:2)
在struct student中,您可以定义指向char的指针,但不为其分配内存。你需要像
这样的东西#define STRSIZE 255
struct student
{
char name[STRSIZE];
int roll_no;
};
...
cin.getline(s1[i].name, STRSIZE);
...
getline的第二个arg是输入缓冲区的长度,而不是分隔符。