fwrite 和fread
时间: 2024-04-09 20:25:22 浏览: 105
fwrite和fread是C语言中用于文件读写的函数。
fwrite函数用于将数据块写入文件。它的原型为:
```c
size_t fwrite(const void *ptr, size_t size, size_t count, FILE *stream);
```
其中,ptr是指向要写入数据的指针,size是每个数据项的大小,count是要写入的数据项的个数,stream是指向要写入的文件的指针。该函数返回成功写入的数据项个数。
fread函数用于从文件中读取数据块。它的原型为:
```c
size_t fread(void *ptr, size_t size, size_t count, FILE *stream);
```
其中,ptr是指向存储读取数据的缓冲区的指针,size是每个数据项的大小,count是要读取的数据项的个数,stream是指向要读取的文件的指针。该函数返回成功读取的数据项个数。
这两个函数在文件读写中非常常用,可以用来读取和写入各种类型的数据,如整数、浮点数、结构体等。
相关问题
fwrite和fread
`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;
}
```
这个示例程序将一个整型数组写入文件中,然后再从文件中读取出来并打印出来。
fwrite和fread的使用
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函数在二进制文件读写时非常有用,但在文本文件读写时可能会导致一些问题,因为它们不会处理文本文件中的换行符和结束符。
阅读全文