在struct数组中输入char *

时间:2015-04-10 10:31:32

标签: c++

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 *?

1 个答案:

答案 0 :(得分:2)

在struct student中,您可以定义指向char的指针,但不为其分配内存。你需要像

这样的东西
#define STRSIZE 255
struct student
{
       char name[STRSIZE];
       int roll_no;

};
...
cin.getline(s1[i].name, STRSIZE);
...

getline的第二个arg是输入缓冲区的长度,而不是分隔符。