| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 646 人关注过本帖
标题:狗屁大学教材
只看楼主 加入收藏
yxb0001
Rank: 2
等 级:论坛游民
帖 子:50
专家分:35
注 册:2009-9-9
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:6 
狗屁大学教材
在大学教材《c++程序设计实验教导与习题解答》"实验十一 流类库与输入/输出实验"实例3中,先不说缺少文件的定义语句,文中红色程序纯粹是误人子弟,实令人怀疑各位编委的水平:

【实例3】 编写一个程序,生成人员信息文件f1.dat,其中信息包括姓名、身高和年龄,
并用二进制方式打开该文件。
题目分析:打开二进制文件时,在open 函数中要加上ios::binary 方式。向二进制文件
中写入信息时使用write 函数,从二进制文件中读出信息时使用read 函数。
程序示例:
#include "iostream.h"
#include "fstream.h"
#include "stdlib.h"
struct Person
{ char name[10];
double height;
unsigned age;
};
Person people[4]={{"wang",1.65,25},{"zhang",1.72,24},
{"li",1.89,21},{"hung",1.70,22}};
void main( )
{
//编写程序
for(int i=0;i<4;i++)
outfile.write((char *)&people[i],sizeof(people[i]));
outfile.close( );
infile.open("f1.dat",ios::in|ios::binary);
if(!infile)
{ cout<<"No such file!"<<endl;
abort( );
}
for(int j=0;j<4;j++)
{
infile.read((char *)&people[j], sizeof(people[j]));
cout<<people[j].name<<"\t"<<people[j].height
<<"\t"<<people[j].age<<endl;
}
infile.close( );
}

1.程序中使用的结构体people输入、输出一致掩盖了程序的错误;

2.如果使用另一新定义的结构体people1用于输入,则错误立现,此时使用vc6.0运行结果如下:

        0       0
        0       0
        0       0
        0       0
Press any key to continue

3.此问题应如何解决?

[ 本帖最后由 yxb0001 于 2009-10-7 13:20 编辑 ]
搜索更多相关主题的帖子: 大学 狗屁 教材 
2009-10-07 13:18
最左边那个
Rank: 4
等 级:业余侠客
威 望:3
帖 子:97
专家分:201
注 册:2009-4-24
收藏
得分:5 
你这个报了很多错啊。首先outfile和infile都没有预先声明定义。另外infile.open("f1.dat",ios::in|ios::binary);是要读"f1.dat",但是你写的时候,都没有写进"f1.dat",当然什么输出不了了。
2009-10-07 13:52
最左边那个
Rank: 4
等 级:业余侠客
威 望:3
帖 子:97
专家分:201
注 册:2009-4-24
收藏
得分:5 
    ofstream outfile;                  // 加上这行
    outfile.open("f1.dat",ios::out);   // 加上这行
//编写程序
for(int i=0;i<4;i++)



ifstream infile;                       // 加上这行
infile.open("f1.dat",ios::in|ios::binary);
if(!infile)
2009-10-07 13:53
newCpp
Rank: 5Rank: 5
来 自:火星
等 级:职业侠客
威 望:3
帖 子:256
专家分:375
注 册:2009-8-17
收藏
得分:5 
估计是作者急着出来卖钱的!

编程语言视频教程在线播放学习
2009-10-07 17:02
yxb0001
Rank: 2
等 级:论坛游民
帖 子:50
专家分:35
注 册:2009-9-9
收藏
得分:0 
这是大学教材的原版复制。

即使加上3楼的也不起作用,虽然可以输出文件"f1.dat",但是却不能输入。至于为什么,1楼已经说明。

一般的大学教材中对于文本文件的输入基本上都没有解决,只是用二进制的文件替代此问题,这就像羊头与狗肉,不是那一回事。
2009-10-07 18:50
最左边那个
Rank: 4
等 级:业余侠客
威 望:3
帖 子:97
专家分:201
注 册:2009-4-24
收藏
得分:5 
回复 5楼 yxb0001
我试过好几次了,确实加上了能解决问题!
2009-10-08 19:44
yxb0001
Rank: 2
等 级:论坛游民
帖 子:50
专家分:35
注 册:2009-9-9
收藏
得分:0 
以下是引用最左边那个在2009-10-8 19:44:24的发言:

我试过好几次了,确实加上了能解决问题!

输入时定义了新的结构体?
2009-10-09 00:07
快速回复:狗屁大学教材
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017229 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved