输入代码:
/*
* 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