fwrite与fread_fwrite和fprintf

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

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Laravel 中 validation 验证 返回中文提示 全局设置

    Laravel 中 validation 验证 返回中文提示 全局设置

    2021年10月23日
    40
  • webpack devtools_webpack loader和plugin的区别

    webpack devtools_webpack loader和plugin的区别首先我们需要知道sourcemap是什么?顾名思义资源映射,它做的就是维护打包处理后的代码与源代码之间的映射关系,只有映射的精确性则取决于webpack的配置项devtool,其决定了项目打包时是否以及如何生成sourcemap,而生成的sourcemap不同决定了构建产物的体积和构建以及重新构建的速度的不同。具体配置项可选值可参考webpack文档这里不一一列举。首先可以看一下webpack的源码,对应处理逻辑仅有20行:https://github.com/webpack/webpack/bl

    2022年10月6日
    0
  • Linux下如何解压.zip和.rar文件[通俗易懂]

    Linux下如何解压.zip和.rar文件[通俗易懂]Linux下如何解压.zip和.rar文件,对于Window下的常见压缩文件.zip和.rar,Linux也有相应的方法来解压它们:1)对于ziplinux下提供了zip和unzip程序,zip是压缩程序,unzip是解压程序。它们的参数选项很多,这里只做简单介绍,举例说明一下其用法:#zipall.zip*.jpg这条命令是将所有.jpg的文件压缩成一个zip包#un…

    2022年5月23日
    34
  • 打开GTA 5竟要跑19.8亿次if语句!黑客嘲讽R星代码烂,修改后直接省70%加载时间

    打开GTA 5竟要跑19.8亿次if语句!黑客嘲讽R星代码烂,修改后直接省70%加载时间本文转载自量子位一支烟的功夫,GTA5联机版终于打开了。「7年了!GTA5联机版加载还是这么慢??」△PleasewaitforevertoplayReddit、Steam、HackerNews上,无数玩家吐槽抱怨……进游戏少则等5、6分钟,多则20分钟。终于,一个黑客大哥实在忍不了,用逆编译器逐条查看运行情况,终于找到原因。原来,R星(游戏开发商RockStar)写的代码太低效,加载时,一个if语句竟然循环了19.8亿次….幕后黑手:谁占用大量时间?加

    2022年6月12日
    30
  • vscode打个感叹号就出现html_为什么vscode输入叹号没反应

    vscode打个感叹号就出现html_为什么vscode输入叹号没反应关于Vscode自动更新后按!或按!+tab键不能自动生成html模板的问题和解决方法

    2022年8月22日
    86
  • Latex中插入多张图片,实现并排排列或者多行多列排列

    Latex中插入多张图片,实现并排排列或者多行多列排列最近需要用latex插入多张图片,达到这么一个效果。但是我原来只插入过一张图片(图片内容来源于网络;是国漫一人之下的宝儿姐。强推这部国漫~),代码如下,效果如图:\begin{figure}\centering\includegraphics[height=4.5cm,width=9.5cm]{111.eps}\caption{pic1}\label{2}\end{figu…

    2022年5月1日
    263

发表回复

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

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