程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> C++程序顯示二進制文件“內容”

C++程序顯示二進制文件“內容”

編輯:C++入門知識

帶領學生學二進制文件操作,要觀察文件中的內容,用記事本不爽,二進制文件根本就不是記事的“業務范圍”

  用EditPlus的HexView可以看,如圖:

  

\

  在我當學生的時候,這個活計是用DOS下的外部命令Debug干的,如下圖,進入DOS方式,轉到你要顯示文件的目錄下,debug 文件名,接下來按圖實施:

  

\

  其實在學習了二進制文件操作後,將每一個文件都當作二制文件,以每16字節為一個讀取單位將文件讀出來再顯示,就是這個效果,可以編寫出下面的程序:


[cpp] 
#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; 

#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;
}
  運行結果與上面兩個的結果是一樣的:

  \

  實際上,大一的同學要知道,和賀老師學習了兩個學期的C++,你已經能做不少的事情了。聯想第16周用ASCII文件做過的IDE中對代碼加注釋、整理格式之類的功能,是不是這樣?

  在編程中發現一些可以做的事情,不妨做一做,就知道自己已經“能”了。

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved