fwrite与fread_fwrite和fprintf

fwrite与fread_fwrite和fprintffread()函数与fwrite函数


Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

fread()

头文件:#include<stdio.h>
功能:是用于读取二进制数据

原型:

size_t fread(void*buffer,size_t size,size_t count,FILE*stream);
1.buffer:  是读取的数据存放的内存的指针,
        (可以是数组,也可以是新开辟的空间)
    ps:   是一个指向用于保存数据的内存位置的指针(为指向缓冲区
          保存或读取的数据或者是用于接收数据的内存地址)
2.size:   是每次读取的字节数
3.count:  是读取的次数
4.stream:  是要读取的文件的指针
      ps: 是数据读取的流(输入流)

返回值:

成功:是实际读取的元素(并非字节)数目
失败:返回0
ps:如果输入过程中遇到了文件尾或者输出过程中出现了错误,这个数字可能比请求的元素数目要小

fwrite()

功能:是用于写入二进制数据
头文件:#include<stdio.h>

原型:

size_t fwrite(void*buffer,size_ size,size_t count,FILE*stream)
1.buffer:是一个指向用于保存数据的内存位置的指针
       (是一个指针,对于fwrite来说,是要获取数据的地址)
2.size:   是每次读取的字节数
3.count:  是读取的次数
4.stream: 是数据写入的流(目标指针的文件)

返回值:

是实际写入的元素(并非字节)数目
ps:如果输入过程中遇到了文件尾或者输出过程中出现了失误,这个数字可能比请求的元素数目要小

代码:

1.fwrite每次读strlen(msg)个字节数,一次性读完(fread同理)

#include<stdio.h>
#include<string.h>
int main()
{
  const char*msg="hello fwrite/fread\n";
  fwrite(msg,strlen(msg),1,stdout);
  char buf[10]={
  
  0};
  fread(buf,strlen(msg),1,stdout);
  return 0;
}

运行结果:

这里写图片描述

2.fwrite()每次读一个字节,分strlen(msg)次读完(fread同理)

 #include<stdio.h>
 #include<string.h>
 int main()
 {
  const char*msg="hello hahaha\n";
  fwrite(msg,1,strlen(msg),stdout);
  char buf[1024]={
  
  0};
  fread(buf,1,strlen(msg),stdout);
  return 0;
}

运行结果:
这里写图片描述

ps:

fwrite的参数:(写什么内容,每次读取的字节数,读取的次数,流)
fread的参数:(该往哪里读(内存),每次读取的字节数,读取的次数,流)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/197386.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • Android Fragment 使用

    自从Fragment出现,曾经有段时间,感觉大家谈什么都能跟Fragment谈上关系,做什么都要问下Fragment能实现不~~~哈哈,是不是有点过~~~本篇博客力求为大家说明Fragment如何产

    2021年12月22日
  • 对java面向对象的三大特征的理解_Java面向对象的三大特征是什么?

    对java面向对象的三大特征的理解_Java面向对象的三大特征是什么?面向对象的三大核心特性简介面向对象开发模式更有利于人们开拓思维,在具体的开发过程中便于程序的划分,方便程序员分工合作,提高开发效率。该开发模式之所以使程序设计更加完善和强大,主要是因为面向对象具有继承、封装和多态3个核心特性。1、继承的概念继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类。继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类…

    2022年7月15日
  • 织梦DedeCMS v5.7 实现导航条下拉菜单

    织梦DedeCMS v5.7 实现导航条下拉菜单

    2021年9月19日
  • win10 硬盘图标变成空白解决办法是什么_新电脑如何分区硬盘win10

    win10 硬盘图标变成空白解决办法是什么_新电脑如何分区硬盘win10Win10硬盘图标变成空白解决办法如图,有时候会出现这种硬盘图标变成空白的情况,虽然不影响使用,但强迫症表示真的很难受,这里给出解决办法:按下组合键WIN+R,输入regedit再按回车运行,这时候会有一个提示,选择“是”。一层一层找到计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\DriveIcons\这个路径,或者也可以直接在上方地址栏输入,注意我这里路径最开始显示的是计

    2022年10月18日
  • Springboot整合一之Springboot整合RabbitMQ

    Springboot整合一之Springboot整合RabbitMQ目前,springboot已然成为了最热的java开发整合框架,主要是因其简单的配置,并且本身提供了很多与第三方框架的整合,甚至可以让我们在短短的几分钟里就可以搭建一个完整的项目架构。所以,博主打算近期写一些springboot整合案例,也不知道先写哪个,那就从最近的写起吧, 言归正传。。。…

    2022年5月15日
  • RT-Thread零基础快速入门第7讲——FinSH控制台「建议收藏」

    RT-Thread零基础快速入门第7讲——FinSH控制台「建议收藏」目录一、前言源码链接二、FinSH控制台使用方法第一步:配置FinSH第二步:烧录程序并把串口连接到PC端第三步:打开xshell或者串口助手第四步:测试FinSH命令三、自定义FinSH命令自定义msh命令自定义C-Style命令和变量自定义命令重命名四、项目实战五、结束语一、前言本来我是打算先讲完RT-thread的内核,再讲设备和组件,但是考虑到后面很多地方都会用到FinSH控制台…

    2022年5月21日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号