作者DigiPrince (幻無影)
看板C_and_CPP
標題Re: [問題] 如何cout出char裡面的內容以16進位表示
時間Tue Jun 1 05:16:24 2010
※ 引述《rockwalking (技安)》之銘言:
: 我想要讀入一個jpeg檔的binary data,為了確保我的確是讀對了
: 我寫了以下的code,但不幸的是buffer 因為是char type ,cout
: 出來的東西會是一堆亂碼。這樣我無法去跟我用Ultra Edit開啟此檔
: 的原始碼做比對。請問該如何寫?
試寫了一下,你的問題應該出在下面這些點。
#include <iostream>
#include <iomanip>
#include <fstream>
using namespace std;
int main(int argc, char* argv[]) {
unsigned char buffer;
ifstream is("test.dat",
ios::binary);
while (is.read(
(char*)&buffer, 1)) {
cout << hex << uppercase
<< setw(2) << setfill('0')
<<
(int)buffer << " ";
}
cout << endl;
is.close();
return 0;
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
※ 編輯: DigiPrince 來自: 140.113.94.230 (06/01 09:44)
推 rockwalking:我想問一下 我跑此code沒印出任何東西耶 真奇怪 06/01 11:55
→ rockwalking:不過感謝大大 06/01 11:55
推 rockwalking:感謝 我忘記改資料檔名 的確可以印出來 謝謝 06/01 11:59