fwrite和fread
时间: 2023-10-25 19:16:39 浏览: 39
`fwrite()` 和 `fread()` 是 C 语言中的文件读写函数。
`fwrite()` 函数用于将数据从内存写入文件中,其原型为:
```c
size_t fwrite(const void *ptr, size_t size, size_t count, FILE *stream);
```
其中,`ptr` 是数据存储的起始地址,`size` 是每个数据项的大小,`count` 是数据项的个数,`stream` 是文件指针指向的文件。
`fwrite()` 函数返回成功写入的数据项个数。
`fread()` 函数用于从文件中读取数据到内存中,其原型为:
```c
size_t fread(void *ptr, size_t size, size_t count, FILE *stream);
```
其中,`ptr` 是数据存储的起始地址,`size` 是每个数据项的大小,`count` 是数据项的个数,`stream` 是文件指针指向的文件。
`fread()` 函数返回成功读取的数据项个数。
需要注意的是,`fwrite()` 和 `fread()` 函数的参数 `size` 和 `count` 表示的是数据项的大小和个数,而不是字节数。因此,`size * count` 就是要写入或读取的字节数。如果要确保写入或读取的数据字节数正确,可以使用 `sizeof()` 函数。
下面是一个使用 `fwrite()` 和 `fread()` 函数进行文件读写的示例:
```c
#include <stdio.h>
int main() {
int data[] = {1, 2, 3, 4, 5};
FILE *fp;
fp = fopen("data.txt", "wb");
fwrite(data, sizeof(int), 5, fp);
fclose(fp);
int read_data[5];
fp = fopen("data.txt", "rb");
fread(read_data, sizeof(int), 5, fp);
fclose(fp);
for (int i = 0; i < 5; i++) {
printf("%d ", read_data[i]);
}
return 0;
}
```
这个示例程序将一个整型数组写入文件中,然后再从文件中读取出来并打印出来。