Re: [問題] 如何cout出char裡面的內容以16進位表示

看板C_and_CPP作者 (幻無影)時間15年前 (2010/06/01 05:16), 編輯推噓2(201)
留言3則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《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)

06/01 11:55, , 1F
我想問一下 我跑此code沒印出任何東西耶 真奇怪
06/01 11:55, 1F

06/01 11:55, , 2F
不過感謝大大
06/01 11:55, 2F

06/01 11:59, , 3F
感謝 我忘記改資料檔名 的確可以印出來 謝謝
06/01 11:59, 3F
文章代碼(AID): #1C12SgQO (C_and_CPP)
文章代碼(AID): #1C12SgQO (C_and_CPP)