第15周【项目2-二进制文件浏览器】

来源:互联网 发布:数据库存储过程 编辑:程序博客网 时间:2024/06/14 17:31

问题描述:

(1)做一个类似BinaryViewer的查看二进制文件的程序,输入文件名后,可以以16进制和ASCII对照的方式列出该文件的内容,可以参考下图:
这里写图片描述
提示:循环中,一次读入16个字节,先用16进制形式输出,再用字符形式输出。

代码实现:

#include <iostream>#include <cstring>#include <cstdio>#include <cstdlib>#include <fstream>#include <iomanip>using namespace std;int main(){    printf("请输入文件名:");    char t[20];    string s;    cin>>t;    ifstream myfile(t,ios::in|ios::binary);    if(!myfile){        cerr<<"open error!\n";        exit(1);    }    /*while(!myfile.eof()){        getline(myfile,s);        cout<<s<<'\12';    }*/    while(!myfile.eof()){        getline(myfile,s);        if(!myfile.eof()){            for(int i=0; s[i]!='\0'; ++i)            cout<<setfill('0')<<setw(2)<<hex<<int((unsigned char)(s[i]))<<" ";            cout<<'\t';            for(int i=0; s[i]!='\0';++i)                cout<<(s[i]?s[i]:'.');            cout<<endl;        }    }    myfile.close();    return 0;}


运行结果:

 

0 0