输入代码:
/* * Copyright (c) 2014, 烟台大学计算机学院 * All rights reserved. * 文件名称:sum123.cpp * 作 者:林海云 * 完成日期:2015年8月19日 * 版 本 号:v2.0 * * 问题描述:做一个类似BinaryViewer的查看二进制文件的程序,输入文件名后,可以以16进制和ASCII对照的方式列出该文件的内容 * 输入描述:输入文件名; * 程序输出:将文件中的内容以16进制形式输出 */ #include<fstream> #include<string> #include<iostream> #include<iomanip> #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!"<<endl; abort(); } 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]))<<" ";//1.预设填充字setfill为字符‘0’ //2.setw(2) 预设输出宽度为2,字符不够时用‘0’补充 //3.hex表示十六进制 //4.unsigned char表示无符号字符型,表示范围0~255 //5.(unsigned char * )可以表示强制转换 cout<<'\t'; for(int i=0; i<16; i++) cout<<(c[i]?c[i]:'.'); cout<<endl; } } cout<<endl; }
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文地址:http://blog.csdn.net/linhaiyun_ytdx/article/details/47792135