C语言fwrite()函数和fread()函数

fwrite()函数以二进制方式向文件流中写入数据,其原型为:
    size_t fwrite(void * buffer, size_t size, size_t count, FILE * stream);
【参数】buffer为数据源地址,size为每个单元的字节数,count为单元个数,stream为文件流指针。


fwrite()函数每次向stream中写入count个单元,每个单元大小为size个字节;文件流的位置指针后移 size * count 字节。


【返回值】返回成功写入的单元个数。如果小于count,则说明发生了错误,文件流错误标志位将被设置,随后可以通过ferror()函数判断。

如果 size 或 count 的值为 0,则返回值为 0,并且文件流的位置指针保持不变。


2.与fwrite()相对应的函数为fread(),fread() 和 fwrite() 一般用于二进制文件的输入输出,ASCII文件还是不要考虑了。
C语言中:fread是一个函数。从一个文件流中读数据,最多读取count个元素,每个元素size字节,
如果调用成功返回实际读取到的元素个数,如果不成功或读到文件末尾返回 0。
函数原型:size_t fread ( void *buffer, size_t size, size_t count, FILE *stream) ;
参数:buffer  用于接收数据的内存地址size  要读的每个数据项的字节数,单位是字节count  要读数据项的个数,
每个数据项size个字节.stream  输入流的指针返回值:返回实际读取的元素个数。如果返回值与count不相同,
则可能文件结尾或发生错误。从ferror和feof获取错误信息或检测是否到达文件结尾。

#include<stdio.h>
#include<string.h>
int main(void)
{
    FILE*stream;
    char msg[]="this is a test";
    char buf[20];
    if((stream=fopen("DUMMY.FIL","w+"))==NULL)
    {
        fprintf(stderr,"Cannot open output file.\n");
        return 0;
    }
    fwrite(msg,1,strlen(msg)+1,stream);
    fseek(stream,0,SEEK_SET);
    fread(buf,strlen(msg)+1,1,stream);
    printf("%s \n",buf);
    fclose(stream);
    return 0;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
fwritefread函数C语言中用于文件读写的函数,它们都是标准库函数,定义在头文件stdio.h中。 fwrite函数的原型如下: ```c size_t fwrite(const void *ptr, size_t size, size_t count, FILE *stream); ``` 参数说明: - ptr:要写入的数据的指针。 - size:每个数据项的大小(单位为字节)。 - count:要写入的数据项的数量。 - stream:文件指针。 返回值为成功写入的数据项的数量。 fwrite函数用于将数据写入文件中,它按照指定的大小和数量将数据写入文件中。如果写入成功,函数返回成功写入的数据项的数量,否则返回0。 例如,下面的代码将一个整数数组写入文件中: ```c #include <stdio.h> int main() { int arr[] = {1, 2, 3, 4, 5}; FILE *fp = fopen("data.txt", "wb"); if (fp == NULL) { printf("Failed to open file.\n"); return 1; } fwrite(arr, sizeof(int), 5, fp); fclose(fp); return 0; } ``` fread函数的原型如下: ```c size_t fread(void *ptr, size_t size, size_t count, FILE *stream); ``` 参数说明: - ptr:要读取数据的缓冲区的指针。 - size:每个数据项的大小(单位为字节)。 - count:要读取的数据项的数量。 - stream:文件指针。 返回值为实际读取的数据项的数量。 fread函数用于从文件中读取数据,它按照指定的大小和数量从文件中读取数据。如果读取成功,函数返回实际读取的数据项的数量,否则返回0。 例如,下面的代码从文件中读取一个整数数组: ```c #include <stdio.h> int main() { int arr[5]; FILE *fp = fopen("data.txt", "rb"); if (fp == NULL) { printf("Failed to open file.\n"); return 1; } fread(arr, sizeof(int), 5, fp); fclose(fp); for (int i = 0; i < 5; i++) { printf("%d\n", arr[i]); } return 0; } ``` 以上代码会输出以下结果: ``` 1 2 3 4 5 ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值