小编Nei*_*net的帖子

使用 C 逐字节读取文件

我正在尝试逐字节读取文件,然后使用 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)

c hex byte

2
推荐指数
1
解决办法
1万
查看次数

标签 统计

byte ×1

c ×1

hex ×1