永发信息网

关于VC文件方面的问题

答案:2  悬赏:80  手机版
解决时间 2021-04-26 19:10

#include<iostream.h>
#include<iomainip.h>
#include<string.h>
#include<fstream.h>
class CStudent
{
public:
CStudent(char*name,char*id,float score=0);
void print();
friend ostream&operator<<(ostream& os,CStudent& stu);
friend istream&operator>>(istream& is,CStudent& stu);
private:
char strNAME[10];
char strID[10];
float fScore;
};
CStudent::CStudent(char*name,char*id,float score)
{
strncpy(strNAME,name,10);
strncpy(strID,id,10);
fscore=score;
}
void CStudent::print()
{
cout<<endl<<"学生信息如下:"<<endl;
cout<<"姓名:"<<strNAME<<endl;
cout<<"学号:"<<strID<<endl;
cout<<"成绩:"<<fScore<<endl;
}
ostream&operator<<(ostream& os,CStudent& stu)
{
os.write(stu.strNAME,10);
os.write(stu.strID,10);
os.write((char*)&stu.fScore,4);
return os;
}
istream&operator<<(istream& is,CStudent& stu);
{
char name[10],id[10];
is.read(name,10);
is.read((char*)&stu.fScore,4);
strncpy(stu.strNAME,name,10);
strncpy(stu.strID,id,10);
return is;
}
void main()
{
CStudent stu1("MaWenTao","99001",88);
CStudent stu2("LiMing","99002",92);
CStudent stu3("WangFang","99003",89);
CStudent stu1("YangYang","99004",90);
CStudent stu1("DingNing","99005",80);
fstream file1;
file1.open("student.dat",ios::out|ios::in|ios::binary);
file1<<stu1<<stu2<<stu3<<stu4<<stu5; \\这句意思是?这里<<是重载了的那个意思?
CStudent*one=new CStudent("",""); \\这又表示什么?
const int size=24;
file1.seekp(size*4);
file1.seekp(size*1);
file1.seekp(size*2,ios::cur);
file1.close();
delete one;
}

还有,二进制文件的后缀是dat?可是我在电脑里建一个dat结尾的文件,会变成暴风影音的文件。

最佳答案

上面对于 file1<<stu1<<stu2<<stu3<<stu4<<stu5; \\这句意思是?这里<<是重载了的那个意思?


的回答,我再补充一点:



由于 ostream&operator<<(ostream& os,CStudent& stu) 返回ostream的引用



所以 file1<<stu1<<stu2<<stu3<<stu4<<stu5;本质上是执行:


((((file1<<stu1)<<stu2)<<stu3)<<stu4)<<stu5;//因为每次返回ostream的引用得以保证这几个<<重载运算符的函数依次运行。



还有,二进制文件的后缀是dat?可是我在电脑里建一个dat结尾的文件,会变成暴风影音的文件。


关于.dat结尾的文件。只是一种文件的表现形式而已。


一般我创建文件业以.dat结尾,为了防止人为打开不经意间改变。不管以什么文件结尾,无所谓。


主要看你创建的方式,以什么方式创建,就以什么方式打开,这样你就可以看到你写入的数据。


建议你采用不熟悉的文件后缀名,防止人为不经意的改变

全部回答

额。。您这个程序问题真多啊。。

#include<iomainip.h> 没有这个头文件吧。。

应该是#include<iomanip.h>

下面的问题就多了。。

如果需要我在帮您改。。要不然您自己练习啦。。

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
猫吃了比较大块的食物,然后一直咳嗽。也不知
烽火战国蒙恬每一级需要多少经验?
2010年8月14日8点28分出世的女孩,五行缺什么
在穿越火线中
Nokia5630 Code 35935002 IMEI 3593500262044
平行四边形有________条边,对边________且__
好朋友向我表白.我们还能像以前那样做好朋友
关公策马走单行;人尔相逢两不离;数千数万从我
这世界上真的有真瑷么???
梅地亚健身会所西关店地址在哪,我要去那里办
DNF血莲鸣风剑图要卖好多
忘记了QQ密码。忘记了密保卡问题,又忘记了二
【求】为什么我的数据线插到电脑上,电脑木反
在赛格坐哪路车去龙华天虹商场
三校生能否报考MBA
推荐资讯
联通冰神卡激活要多久
QQ幻想世界是靠装备说话的吗?
浙江圣奇运动器械制造有限公司怎么去啊,有知
石家庄有没有不用档案直接交社会保险的地方?
新恐怖电影有哪些?
人各有志,每个人都会跟具自己的能耐做不同的
西安人信考研班官网是多少
田甲申商务宾馆地址在哪,我要去那里办事
什么才是最值得我们珍惜的
湖南台节目预告有一首韩国儿歌叫什么
电脑玩奇迹卡.怪一多就卡.
爱情的感慨诗句,具有哲理的话
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?