c++ifstream读文件内容出现错误
Database1(){intnum;char*name;intage;char*profession;char*title;//在这里有警告说title这些没有初始化?...
Database1()
{
int num;char *name;int age;char *profession;char *title;//在这里有警告说title这些没有初始化??运行是还会有错误。
Engineer s;
top=-1;
ifstream file("d:\\Engineer.txt");
if(!file)
{
cout<<"不能打开文件"<<endl;
return ;
}
while (!file.eof())
{
if(file>>num>>name>>age>>profession>>title)
{
s.Addmember(num,name,age,profession,title);
++top;
read[top]=s;
}
}
file.close();
} //代码主要的功能是读取文件中的内容,然后付给对象数组,不知道怎么的会出现错误Unhandled exception at 0x00fcaab4 in staff11.exe: 0xC0000005: Access violation writing location 0x00fd3e1c. 展开
{
int num;char *name;int age;char *profession;char *title;//在这里有警告说title这些没有初始化??运行是还会有错误。
Engineer s;
top=-1;
ifstream file("d:\\Engineer.txt");
if(!file)
{
cout<<"不能打开文件"<<endl;
return ;
}
while (!file.eof())
{
if(file>>num>>name>>age>>profession>>title)
{
s.Addmember(num,name,age,profession,title);
++top;
read[top]=s;
}
}
file.close();
} //代码主要的功能是读取文件中的内容,然后付给对象数组,不知道怎么的会出现错误Unhandled exception at 0x00fcaab4 in staff11.exe: 0xC0000005: Access violation writing location 0x00fd3e1c. 展开
4个回答
展开全部
char *name;
char *profession;
char *title;
这三处,都有错,。问题就是没有分内存。
两种方法解决:
方法一:
如果你知道上面三个参数最大需要多少字节,。可以用
这样的方法来分内存。用name为例:name=(char *) malloc(大小);
用完之后,在最后面用 free(name);释放内存。
方法二:
换个定义的方法
char name[大小];
char profession[大小];
char title[大小];
char *profession;
char *title;
这三处,都有错,。问题就是没有分内存。
两种方法解决:
方法一:
如果你知道上面三个参数最大需要多少字节,。可以用
这样的方法来分内存。用name为例:name=(char *) malloc(大小);
用完之后,在最后面用 free(name);释放内存。
方法二:
换个定义的方法
char name[大小];
char profession[大小];
char title[大小];
展开全部
profession和title仅仅是指针而已,没有指向可用的内存空间。
应该声明为char professiton[81],title[20];这样的数组。
数组具体长度由你的文件内容而定,只要保证不越界就行了。
应该声明为char professiton[81],title[20];这样的数组。
数组具体长度由你的文件内容而定,只要保证不越界就行了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int num;char *name;int age;char *profession;char *title;
怎么用的是中文的分号?改成
int num;char *name;int age;char *profession;char *title;
怎么用的是中文的分号?改成
int num;char *name;int age;char *profession;char *title;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
没有内存空间
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询