1. 程式人生 > >C++實踐參考——二進位制檔案瀏覽器

C++實踐參考——二進位制檔案瀏覽器

【專案-二進位制檔案瀏覽器】
(1)做一個類似BinaryViewer的檢視二進位制檔案的程式,輸入檔名後,可以以16進位制和ASCII對照的方式列出該檔案的內容,可以參考下圖:
這裡寫圖片描述
提示:迴圈中,一次讀入16個位元組,先用16進位制形式輸出,再用字元形式輸出。
[參考解答]

#include<iostream>
#include<iomanip>
#include <fstream>
#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!"; exit(1); } 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]))<<" "; cout<<'\t'; for(int i=0; i<16; ++i) cout<<(c[i]?c[i]:'.'); cout<<endl; } } return 0; }

(2)通過為main函式加引數,在命令列方式下,輸入“命令加檔名”的方式,就可以顯示該檔案的內容,也採用如上16進位制和ASCII對照的形式。
[參考解答]請參考

在命令列中加引數的檔案複製程式