這是一個奇怪的問題,一直困擾着我。該程序是用C89編寫的,它一次將一個文件讀取到char *數組中,每次16個字節(使用fread和sizeof(char))的大小。該文件是用「rb」標誌打開的。然後將該數組傳遞給一個函數,該函數基本上取16個十六進制值並將其粘貼到一個字符串中,每個值由一個空格分隔。打印出C中char *數組的十六進制值給出二進制輸入的奇數值
這裏是古怪的地方。函數產生一個很好的十六進制轉儲,一次16個字節,用於我有的文本文件輸入。但是,如果我嘗試在一個小的位圖圖像 - 它結束了輸出字符串,如ffffff88,而不是隻有88.
十六進制值被放置到輸出字符串使用sprintf(「%02x」 ,輸入[i]);在一個循環中。
爲什麼這可以正常使用某些文件而不是其他文件?