第14周-專案2-二進位制檔案瀏覽器
問題及程式碼:
一次讀入16個位元組,先用16進位制形式輸出,再用字元形式輸出。
/*
*Copyright (c)2015,煙臺大學計算機與控制工程學院
*All rights reserved.
*檔名稱:File.cpp
*作 者:單昕昕
*完成日期:2015年6月15日
*版 本 號:v1.0
*問題描述:
(1)做一個類似BinaryViewer的檢視二進位制檔案的程式,輸入檔名後,可以以16進位制和ASCII對照的方式列出該檔案的內容,可以參考下圖:
這裡寫圖片描述
提示:迴圈中,一次讀入16個位元組,先用16進位制形式輸出,再用字元形式輸出。
(2)通過為main函式加引數,在命令列方式下,輸入“命令加檔名”的方式,就可以顯示該檔案的內容,也採用如上16進位制和ASCII對照的形式。
*程式輸入:檔名。
*程式輸出:以16進位制和ASCII對照的方式列出該檔案的內容。
*/
#include <iostream>
#include <cstdio>
#include <iomanip>
#include <cstdlib>//為了使用exit()
#include <fstream>
using namespace std;
int main()
{
char c[16],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;
}
一次讀入16個位元組,先用16進位制形式輸出,再用字元形式輸出。
學習心得:
表示一開始木有頭緒,是看了賀老師的參考解答才有思路寫出來的。。
相關文章
- 第14周-閱讀專案1-二進位制檔案的讀寫
- 第14周-專案1-用二進位制檔案處理學生成績
- 第14周-閱讀專案2-中文字元以二進位制方式儲存字元
- 第14周-閱讀專案4-二進位制檔案和字串流操作的一般方法字串
- 第2周專案2-長方柱類
- 二進位制檔案複製
- php寫二進位制檔案PHP
- 二進位制檔案拷貝
- 第13周-專案2-用檔案儲存的學生名單
- javascript瀏覽器端二進位制讀寫功能JavaScript瀏覽器
- 二進位制檔案視覺化(二)視覺化
- 檔案操作(二進位制拷貝)
- Git處理二進位制檔案Git
- MySQL二進位制檔案(binlog)MySql
- 文字檔案與二進位制檔案的區別
- [golang] cgo專案如何編譯便攜版二進位制檔案Golang編譯
- Python讀寫二進位制檔案Python
- Java二進位制Class檔案格式解析Java
- c++ 二進位制儲存檔案C++
- C#的二進位制檔案操作C#
- 使用UltraEdit 拷貝二進位制檔案
- 第4周專案2-分數類的雛形
- MySQL 匯出匯入二進位制檔案MySql
- UltraEdit--二進位制檔案編輯功能
- 用shell處理二進位制檔案(轉)
- UE複製貼上二進位制檔案
- 介面返回二進位制檔案的下載。
- 二進位制檔案記憶體對映記憶體
- 第15周-專案2-有些數的階乘不算了
- 第3周專案2-三角形類2
- 二進位制檔案安裝安裝etcd
- 6.3建立自己執行的二進位制檔案
- C++ 讀取二進位制檔案到char*C++
- C/C++ 二進位制讀寫 png 檔案C++
- Oracle建立二進位制檔案索引的方法(轉)Oracle索引
- iOS 二進位制流轉化-專案筆記iOS筆記
- 如何將日誌檔案和二進位制檔案快速匯入HDFS?
- 文盤Rust -- 如何把配置檔案打包到二進位制檔案裡Rust