码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-06-17 09:33:37      阅读:85      评论:0      收藏:0      [点我收藏+]

标签:c++   iostream   namespace   计算机   

问题描述:

(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-二进制文件浏览器】

标签:c++   iostream   namespace   计算机   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!