我正在尝试逐字节读取文件,然后使用 C 将其打印出来,但输出与十六进制编辑器的显示不匹配。
在十六进制编辑器中,前两行如下所示:
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0111 1111 1000 0000 0000
Run Code Online (Sandbox Code Playgroud)
预期输出:
00000000000000000000000000000000
00000000000001111111100000000000
Run Code Online (Sandbox Code Playgroud)
但是当我的代码输出这个时:
00000000000000000000001111111100
00000000000000000000000000000000
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
#include <stdio.h>
#include <string.h>
int main() {
FILE *fp;
unsigned char buffer[4900] = "";
int y;
y = 0;
fp = fopen("tugasz.ksa", "rb");
for (int x = 0; x < 4900; x++) {
fread(buffer, 1, 4900, fp);
printf("%x", buffer[x]);
}
return (0);
}
Run Code Online (Sandbox Code Playgroud)