C++ cin.getline()参数的问题

来源:百度知道 编辑:UC知道 时间:2024/05/28 03:51:19
#include<iostream.h>
#include <fstream.h>
struct aaaa{
char as[40];
char asdf[40];
};

void main()
{aaaa *p;
cout<<"输入:"<<endl;
cin.getline(p->as,40);
cout<<p->as<<endl;
}

这个小程序在执行的过程中老是出错,是什么地址不能为"read"之类的,如果把cin.getline(p->as,40)中的p->as换为p.as,*p换为p,既p是对象不是指针就对。
这是为什么,有什么可以改的吗,我要输入一段字符串,但是我的函数的传值参数只能是结构的指针,也就是后面访问结构的成员时,只能用p->as这种方式,而as是字符数组,用cin.getline()这个函数比较方便,但会出错。
我该怎么修改。

大哥,
aaaa *p;
p指针还没初始化你就用了?p指向了不可知的空间,当然会出错了。
先new出来吧

void main()
{aaaa *p=new aaaa;
cout<<"输入:"<<endl;
cin.getline(p->as,40);
cout<<p->as<<endl;
}