永发信息网

c++中文件的输入输出

答案:2  悬赏:80  手机版
解决时间 2021-04-30 06:04
  • 提问者网友:咪咪
  • 2021-04-30 02:12

书上抄的代码,devc++因为每次看结果都要输system(“PAUSE”),发现屏幕上的结果与书上的不一样,析构函数的输出没有显示出来,会不会是因为没有执行return 0的原因。所以想用文件的输入输出,但不知道怎么用,附上代码

#include<iostream>
#include<cstring>
#include<iomanip>
#include<fstream>
using namespace std;
class studentID{
long value;
public:
studentID(long id=0){//默认参数
value=id;
ofile<<"赋给学生的学号:"<<value<<endl;
}
~studentID(){
ofile<<"删除学号:"<<value<<endl;
}
};
class student{
studentID id;
char name[20];
public:
student(char sname[]="no name",long sid=0):id(sid){
ofile<<"学生名:"<<sname<<endl;
strcpy(name,sname);
}
~student(){
ofile<<"删除学生名"<<name<<endl;
}
};
int main()
{
ofstream ofile;
ofile.open("d:\\youfile.txt");
student ss("朱明",82020132);
ofile.close();

return 0;

}

这是自己仿造着一般的写的,有语法错误,下面是源代码

#include<iostream>
#include<cstring>
#include<iomanip>
#include<fstream>
using namespace std;
class studentID{
long value;
public:
studentID(long id=0){//默认参数
value=id;
cout<<"赋给学生的学号:"<<value<<endl;
}
~studentID(){
cout<<"删除学号:"<<value<<endl;
}
};
class student{
studentID id;
char name[20];
public:
student(char sname[]="no name",long sid=0):id(sid){
cout<<"学生名:"<<sname<<endl;
strcpy(name,sname);
}
~student(){
cout<<"删除学生名"<<name<<endl;
}
};
int main()
{


student ss("朱明",82020132);

system("pause");
return 0;

}

请高手刚我改一下吧

最佳答案
  • 五星知识达人网友:不想翻身的咸鱼
  • 2021-04-30 02:35

ss在整个main中都有效,等你return 0后才销毁,这时才调用析构函数,自然看不到输出,


建议用


student* ss = new student("朱明", 82020132);


delete ss;


system("pause");


这样来查看。

全部回答
  • 1楼网友:低音帝王
  • 2021-04-30 03:36

大概看了一下,ss没析构,吧定义放在括号里试一下。

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯