
流年如水为您分享以下优质知识
在C语言中输出二进制文件内容可以通过以下两种主要方法实现:
一、使用 `fwrite()` 函数写入二进制数据
`fwrite()` 是C语言中用于将二进制数据写入文件的常用函数,其原型为:
```c
size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream);
```
`ptr`:指向要写入数据的指针
`size`:每个数据项的大小(以字节为单位)
`nmemb`:要写入的数据项数量
`stream`:指向目标文件的文件指针(如 `FILE *fp`)
示例代码:
```c
include
int main() {
int data[] = {1, 2, 3, 4, 5};
FILE *fp = fopen("output.bin", "wb"); // 以二进制写入模式打开文件
if (fp == NULL) {
perror("Error opening file");
return 1;
}
fwrite(data, sizeof(int), 5, fp); // 写入5个整型数据
fclose(fp);
return 0;
}
```
运行后,文件 `output.bin` 将包含整型数组的二进制表示。
二、使用 `printf()` 函数输出二进制数据(仅限控制台)
C语言标准库未提供直接输出二进制数据的格式化指令(如 `%b`),但可通过以下两种方式实现:
1. 使用 `%b` 格式化(需要自定义转换函数)
```c
include
include
void print_binary(unsigned int num) {
char binary = {0}; // 32位二进制数 + 结尾的'0'
for (int i = 0; i < 32; i++) {
binary[i] = (num & (1