fscanf函数、fprintf函数和fread函数、fwrite函数

一、fscanf函数

        (1)fscanf函数介绍

   fscanf()函数是C语言中用于从文件中按照指定格式读取数据的函数,工作方式与scanf()类似,但fscanf从文件中读取数据,而scanf从标准输入中读取数据。

        (2)fscanf函数原型和参数介绍
int fscanf(FILE *stream, const char *format, ...);

参数介绍:

  • stream:要读取数据的文件指针。
  • format:格式字符串,指定了要读取的数据类型和格式。
  • ...:可变参数列表,与format中的格式控制符一一对应,用于接收读取到的数据。
  • 返回值:

        当成功读取并赋值的参数个数与格式字符串中的转换说明符一致时,返回成功读取并赋值的参数个数;如果没有成功匹配或读取任何数据,则返回0;如果发生读取错误(如遇到无效的输入),则返回EOF(-1);如果已到达文件末尾,则返回EOF(-1)。

        可以用if语句进行判断是否全部读取和是否发生异常情况。

 二、fprintf函数

        (1)fprintf函数介绍

                fprintf()函数是C语言中用于将数据按照指定格式写入文件的函数。使用fprintf()函数可以向文件中写入各种类型的数据,并且可以根据需要进行格式化输出。

        (2)fprintf函数原型和参数介绍
int fprintf(FILE *stream, const char *format, ...);

参数介绍:

  • stream:要写入数据的文件指针。
  • format:格式字符串,指定要写入的数据类型和格式。
  • ...:可变参数列表,与format中的格式控制符一一对应,用于提供要写入的数据。

返回值:

        返回成功写入的字符数,即成功执行写入操作的字符总数;如果发生写入错误,则返回一个负值。

三、fread函数

        (1)fread函数介绍

         fread()函数是C语言中用于从文件中以二进制形式读取数据的函数。fread()函数的作用是从文件中读取指定数量的数据项,并将其存储到提供的缓冲区中。

        (2)fread函数原型和参数介绍
 size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);

参数介绍:

  • ptr:指向要存储读取数据的缓冲区首地址的指针。
  • size:每个数据项的字节数,即写入对象的大小。
  • nmemb:要读取的数据项的数量,即写入对象的个数。
  • stream:要读取数据的文件指针。
  • 返回值:

        返回值size_t是无符号整形,如果成功读取了全部的nmemb个数据项,则返回值等于nmemb如果在读取过程中遇到文件结束或无法读取足够的数据项,则返回值可能小于nmemb如果发生读取错误(如文件读取失败、IO错误等),则返回值为0。

        注意:fread()函数的返回值并不一定表示已经成功读取了所有期望的数据项数量。因此,在使用fread()函数后,应该根据返回值判断是否出现了错误或者读取了预期的数据项数量,以进行适当的处理和异常处理。例如,可以根据fread()的返回值来检查是否成功读取了预期的数据项数量,并视情况进行进一步操作。

四、fwrite函数

        (1)fwrite函数介绍

         fwrite()函数是C语言中用于以二进制形式将数据写入文件的函数。作用是将给定数量的数据项从缓冲区写入到文件中。

        (2)fwrite函数原型和参数介绍
size_t fwrite(const void *ptr, size_t size, size_t nmemb,FILE *stream);

参数介绍:

  • ptr:指向要写入的数据缓冲区的指针。
  • size:每个数据项的字节数。
  • nmemb:要写入的数据项的数量。
  • stream:要写入数据的文件指针。
  • 返回值:返回一个 size_t 类型的值,表示成功写入的数据项数量。

        如果成功写入了全部的 nmemb个数据项,则返回值等于nmemb如果在写入过程中发生了错误(如磁盘空间不足、IO 错误等),则返回值可能小于nmemb​​​​​​​如果返回值小于nmemb,可以通过检查 ferror() 或 feof() 函数来确定是否是因为发生了错误或已到达文件末尾。

        注意:fwrite() 函数的返回值并不一定表示已经成功写入了所有期望的数据项数量。因此,在使用 fwrite() 函数后,应该根据返回值判断是否出现了错误或者写入了预期的数据项数量,以进行适当的处理和异常处理。例如,可以根据 fwrite() 的返回值来检查是否成功写入了预期的数据项数量,并视情况进行进一步操作。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值