C++實踐參考——二進位制檔案瀏覽器
阿新 • • 發佈:2019-02-12
【專案-二進位制檔案瀏覽器】
(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對照的形式。
[參考解答]請參考 在命令列中加引數的檔案複製程式