首页 > 其他 > 详细

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

时间:2015-06-17 09:30:56      阅读:131      评论:0      收藏:0      [点我收藏+]

问题描述:

(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;
}


运行结果:

技术分享 

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

原文:http://blog.csdn.net/zp___waj/article/details/46529537

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!