二进制文件和文本文件究竟有什么区别?怎样将数组或者字符串输入二进制文件?
时间: 2023-11-12 16:09:44 浏览: 88
二进制文件和文本文件的主要区别在于存储的数据格式不同。
文本文件是由文本编码组成的文件,可以使用常见的文本编辑器打开和编辑。它的数据是以ASCII码或Unicode编码等文本格式存储的,并且每个字符都占用一个固定的字节长度。因此,文本文件中的数据可以直接被人类读取和理解。
而二进制文件则是以二进制格式存储的文件,它的数据是按照二进制编码格式存储的。因此,二进制文件中的数据无法直接被人类读取和理解,需要使用特定的程序进行解析和处理。
将数组或字符串输入到二进制文件,可以使用 `fwrite` 函数来实现。该函数的基本语法如下:
```C
size_t fwrite(const void *ptr, size_t size, size_t count, FILE *stream);
```
其中,`ptr` 表示要写入文件的数据的指针,`size` 表示每个数据项的字节数,`count` 表示要写入的数据项的个数,`stream` 表示要写入的文件流。
下面是一个将数组写入二进制文件的例子:
```C
#include <stdio.h>
int main() {
int arr[5] = {1, 2, 3, 4, 5};
FILE *fp;
fp = fopen("data.bin", "wb");
fwrite(arr, sizeof(int), 5, fp);
fclose(fp);
return 0;
}
```
在上面的例子中,我们先定义了一个包含5个整型数据的数组 `arr`。接着,我们打开一个名为 "data.bin" 的二进制文件,并将其赋值给 `fp` 变量。然后,我们使用 `fwrite` 函数将数组 `arr` 写入到二进制文件中。最后,我们关闭文件流并结束程序的运行。
需要注意的是,在使用 `fwrite` 函数时,我们需要指定每个数据项的字节数,以及要写入的数据项的个数。否则,可能会出现数据写入不完全或者写入多余数据的情况。
阅读全文