带领学生学二进制文件操作,要观察文件中的内容,用记事本不爽,二进制文件根本就不是记事的“业务范围”
用EditPlus的HexView可以看,如图:
在我当学生的时候,这个活计是用DOS下的外部命令Debug干的,如下图,进入DOS方式,转到你要显示文件的目录下,debug 文件名,接下来按图实施:
其实在学习了二进制文件操作后,将每一个文件都当作二制文件,以每16字节为一个读取单位将文件读出来再显示,就是这个效果,可以编写出下面的程序:
#include<iostream> #include<iomanip> #include <fstream> #include<cstdlib> using namespace std; int main( ) { char c[16]; char f[100]; cout<<"请输入文件名:"; cin>>f; ifstream infile(f,ios::in|ios::binary); if(!infile) { cerr<<"open error!"; exit(1); } while(!infile.eof()) { infile.read(c,16); if(!infile.eof()) { for(int i=0; i<16; ++i) cout<<setfill('0')<<setw(2)<<hex<<int((unsigned char)(c[i]))<<" "; cout<<'\t'; for(int i=0; i<16; ++i) cout<<(c[i]?c[i]:'.'); cout<<endl; } } return 0; }运行结果与上面两个的结果是一样的:
实际上,大一的同学要知道,和贺老师学习了两个学期的C++,你已经能做不少的事情了。联想第16周用ASCII文件做过的IDE中对代码加注释、整理格式之类的功能,是不是这样?
在编程中发现一些可以做的事情,不妨做一做,就知道自己已经“能”了。
==================== 迂者 贺利坚 CSDN博客专栏=================
|== IT学子成长指导专栏 专栏文章分类目录(不定期更新) ==|
|== C++ 课堂在线专栏 贺利坚课程教学链接(分课程年级) ==|
======== 为IT菜鸟起飞铺跑道,和学生一起享受快乐和激情的大学 =======