以下是使用C语言读取二进制文件并输出的示例代码:

#include <stdio.h>
#include <stdlib.h>

void _byteswap_ulong(unsigned int *num) {
    *num = ((*num >> 24) & 0x000000FF) | ((*num >> 8) & 0x0000FF00) | ((*num << 8) & 0x00FF0000) | ((*num << 24) & 0xFF000000);
}

void readBinaryFile(FILE *file) {
    unsigned char read[100]; // 假设最多读取100个字节
    unsigned int *ptr;
    size_t bytesRead;

    bytesRead = fread(read, sizeof(unsigned char), sizeof(read), file);
    if (bytesRead > 0) {
        ptr = (unsigned int*)read;
        for (size_t i = 0; i < bytesRead / sizeof(unsigned int); i++) {
            _byteswap_ulong(&ptr[i]);
            printf('%u\n', ptr[i]);
        }
    } else {
        printf("Error reading file.\n");
    }
}

int main() {
    FILE *file = fopen("binaryfile.bin", "rb"); // 以二进制只读方式打开文件
    if (file != NULL) {
        readBinaryFile(file);
        fclose(file);
    } else {
        printf("Error opening file.\n");
    }

    return 0;
}

上述代码中,readBinaryFile函数用于读取二进制文件内容并输出。_byteswap_ulong函数用于交换无符号int类型的字节顺序。在readBinaryFile函数中,首先使用fread函数读取文件内容到read数组中,然后使用一个无符号int类型的指针ptr指向read数组,通过循环遍历输出每个无符号int类型的值,并在输出前调用_byteswap_ulong函数进行字节顺序的交换。最后在main函数中打开二进制文件,并调用readBinaryFile函数进行读取和输出。请注意,示例代码中的文件名为'binaryfile.bin',请根据实际文件名进行修改。

该代码示例展示了如何使用C语言读取二进制文件,并利用_byteswap_ulong函数进行字节顺序交换,适用于需要处理不同字节顺序数据的场景。读者可以根据自己的需求修改代码,例如调整读取数据的大小和类型,以及修改字节顺序交换函数等。

C语言读取二进制文件并输出:字节顺序交换示例

原文地址: http://www.cveoy.top/t/topic/kmk 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录