0
我是比較新的C.我有我想要打印到標準輸出二進制緩衝區,就像這樣:如何在C中打印二進制數據?
unsigned char buffer[1024];
有沒有用printf輸出這個到stdout的方法嗎?我查看了printf的手冊頁,但沒有提及unsigned char*
,只有const char*
的%s
。
我想我可以循環緩衝區,並做putchar(buffer[i])
,但我認爲這將是相當低效。有沒有辦法使用printf來做到這一點?我是否應該使用類似fwrite
的東西,那會更合適嗎?
謝謝。
編輯:對不起,我不想將任何東西都轉換爲十六進制/二進制符號,只是按原樣寫出緩衝區。例如,如果我在緩衝區中有[0x41 0x42 0x42 0x41]
,那麼我想打印「ABBA」。
是,'fwrite'是要走的路。 – redneb
您可以使用printf和「%x」以十六進制打印每個字符。 – Mick
由於'%s'將在第一個NUL字符上終止,即使NUL在這些情況下經常是一個有效值,使用二進制字符串的'printf'可能會證明是錯誤的。 – Myst