C和指针---输入/输出函数

【基础知识】如何理解指针作为函数参数的输入和输出特性 函数‘func’只是在主调函数分配的内存中进行操作,不会分配新的内存。在‘main’函数中,我们将‘num’的地址传递给‘updateValue’函数,从而在函数内部可以修改‘num’的值,导致‘main’函数中第二个‘printf’输出了修改后的值。在上面的示例中,‘printValue’函数接受一个指向‘int’类型的指针作为参数,并通过解引用操作符‘*’来读取指针指向的变量的值。在‘main’函数中,我们将‘num’的地址传递给‘printValue’函数,从而在函数内部可以访问到‘num’的值。 阅读详情

1.二进制I/O

1.1 fread/fwrite
把数据写到文件效率最高的方法是用二进制形式写入。
size_t fread(voidbuffer,size_t size,size_t count,FILEstream);
头文件:#include<stdio.h>
功能:是用于读取二进制数据
成功:是实际读取的元素(并非字节)数目
失败:返回0
size_t fwrite(voidbuffer,size_ size,size_t count,FILEstream)
功能:是用于写入二进制数据
头文件:#include<stdio.h>
是实际写入的元素(并非字节)数目
与read/write的区别:
若文件大小是8K,用read/write 且只分配2K的缓存,则需要将此文件读出需要做4次系统调用来实现从磁盘上读出。而fread/fwrite,则系统自动分配缓存,只要一次系统调用从磁盘读出。
如果程序对内存有限制,则用read/write比较好
如果要处理一些特殊的描述符,用read/write,如套接口、管道之类的。

1.2 刷新和定位函数
int fflush(FILE *stream)
功 能: 清除读写缓冲区,在需要立即把输出缓冲区的数据进行物理写入时
fseek函数是 用来设定文件的当前读写位置.
函数原型: int fseek(FILE *fp,long offset,int origin);
函数功能:把fp的文件读写位置指针移到指定的位置.
第三个参数origin设定从文件的哪里开始偏移,可能取值为:SEEK_CUR、 SEEK_END 或 SEEK_SET
SEEK_SET: 文件开头
SEEK_CUR: 当前位置
SEEK_END: 文件结尾
fseek(fp,20,SEEK_SET); 意思是把fp文件读写位置指针从文件开始后移20个字节.

ftell函数是用来获取文件的当前读写位置;
函数原型: long ftell(FILE *fp)
函数功能:得到流式文件的当前读写位置,其返回值是当前读写位置偏离文件头部的字节数.
ban=ftell(fp); 是获取fp指定的文件的当前读写位置,并将其值传给变量ban.

fseek函数与ftell函数综合应用:
分析:可以用fseek函数把位置指针移到文件尾,再用ftell函数获得这时位置指针距文件头的字节数,这个字节数就是文件的长度

C和指针读书笔记——输入/输出函数 1、标准规定了标准函数库中的函数接口操作,有助于提高程序的可移植性; 2、标准库函数在errno中保存错误代码之后将这个信息传递给用户,提示操作失败的原因; 注:只有当一个库函数失败时,errno才会被设置,当函数成功执行时,errno的值不会被修改,因此我们不能通过测试errno的值来判断是否有错误发生,使用perror是一个很好的办法; 3、perror函数与exit函数 p 阅读详情

相关推荐

C和指针 第15章 输入/输出函数 15.10 格式化的行I/O

C和指针 第15章 输入/输出函数 15.10 格式化的行I/O

weixin_客子光阴的博客 250

由函数指针输出函数名

作用于函数指针作为泛用的函数类型,我这边在做仿真器时遇到,有函数指针指向不同的指令执行,复杂的函数使得压根不知道指向什么类型和什么函数,故用此方式输出函数名。 所用提取函数名的c函数为backtrace_symbols,用backtrace_symbols_fd也可以。 此处以c++实现,相对c要更为复杂。

qq_34644470的博客 841

ABAQUS中CDP模型在钢筋混凝土节点低周反复荷载模拟的关键技术解析

本文深入解析了ABAQUS中CDP模型在钢筋混凝土节点低周反复荷载模拟中的关键技术。通过详细介绍CDP模型的核心价值、建模关键技术、滞回曲线优化方法及典型问题排查指南,帮助工程师精准模拟混凝土的拉伸开裂和压缩压碎行为,提升抗震分析效率。文章还提供了实用的工程应用技巧,如快速建模模板和后处理自动化脚本。

weixin_30555125的博客 525

【C 语言】二级指针作为输出 ( 指针输入 | 指针输出 | 二级指针 作为 函数形参 使用示例 )

一、二级指针、 二、完整代码示例、

让 学习 成为一种 习惯 ( 韩曙亮 の 技术博客 ) 2187

[漏洞剖析]JeecgBoot queryFieldBySql注入与JDBC连接滥用:从内存马植入到RCE的完整攻击链

本文深度剖析了JeecgBoot框架中queryFieldBySql接口的SQL注入漏洞及其引发的完整攻击链。攻击者利用该漏洞,通过Freemarker SSTI植入隐蔽的内存马,并进一步滥用JDBC连接测试功能,借助H2数据库特性实现远程命令执行(RCE),揭示了低代码平台中功能滥用与安全配置疏忽带来的严重风险。

weixin_29232121的博客 115

基于C#的ASP.NET开发的党史学习网站课设

开展党史学习教育,就是要以史为镜、以史明志,把苦难辉煌的过去、日新月异的现在、光明宏大的未来贯通起来,在鉴往知来中砥砺前行,在乱云飞渡中把准航向,在凝心聚力中团结奋斗,共同创造新的历史伟业。登陆按钮与数据库进行连接,逻辑实现是如图3.1.3所示,自己定义一个SQL查询语句,将账号、密码放入SQL查询语句中,用sqlDataReader.HasRows语句进行逐一比较,找出结果,将用户名存入session并调用cookies,如果结果存在就关闭数据库,进行数据跳转,并弹出登陆成功的提示框,并关闭数据库。

m0_62408555的博客 974

6-3 指针作函数参数,实现成绩输入和统计输出

p为指向学生成绩的数组指针,m和n依次是学生人数、课程数,其值分别由用户从键盘输入。

L2809的博客 1890

SDFCOM_SWC警告深度剖析:从assign短路到时序标注失效的链路追踪

本文深入剖析了SDFCOM_SWC警告的根源,从assign短路到时序标注失效的全链路追踪。通过分析RTL设计中的assign语句陷阱、综合阶段的优化变形以及PrimeTime生成SDF文件的视角,提出了重构RTL设计、警告抑制和SDF生成优化等解决方案,帮助工程师有效避免时序标注问题。

weixin_42519985的博客 363

C语言 指针的内容

目录 一、指针与变量 指针的含义 1、1 指针类型和指针变量 二、指针操作 三、指向指针的指针 四、指针与数组 4、1 用指针标识数组 4、2 指针运算 4、3指针数组 五、字符串指针 一、指针与变量 指针的含义 每个有它的值,同时在计算机内存中占用一块存储区,该存储区的地址就是相应变量的地址,该存储区的保存的内容就是相应变量的值。 可以认为地址和指针是同义语,变量的指针就是变量的地址,保存变量指针的变量(地址)称为指针变量。 1、1 指针类型和指针变量 T ...

m0_51490933的博客 6371

半桥LLC谐振变换器及同步整流MATLAB仿真(一)

LLC工作原理详细解析,工作过程详细拆解

qq_55203246的博客 3万+

第4章:外包接单全攻略——Upwork/电鸭/猪八戒从0到第一单

> - 三个外包平台的详细对比(适合人群、抽成、防骗) > - 每个平台的Profile优化模板(可直接复制修改) > - 用AI写Proposal的3个Prompt模板(我实测回复率提升50%) > - 报价策略与防骗指南(附5个危险信号) > - 我的第一单复盘:从注册到收款的全过程(含聊天记录脱敏)

sfishfly的博客 574

[C和指针] ch15. 输入 / 输出函数

第十四章:预处理器 GitHub 链接:ch14. 预处理器 C 语言宏用的很多很多,看看 stdio.h 等各种头文件或者开源项目中的应用就懂了,各种宏定义,坑点也是蛮多的,需要学习并注意。 本章总结及注意点 部分课后习题解答 14.9 问题 以前竟然不知道…在 demo01.c 中把本章大大小小的点简单敲了敲。这 5 个宏确实蛮好用的。具体可见参考答案: 见名知意。方便修改、维护。 考查 __FILE__ 宏及 __LINE__ 的使用,以及参数转字符串的方法, 参数前加 # 即可

Y-puyu 的博客 432

Unreal5从入门到精通之如何解决在VR项目在头显中卡顿的问题

以前我们使用Unity开发VR,Unity提供了非常便利的插件和工具来做VR。但是由于Unity的渲染效果不如Unreal,现在我们改用Unreal来做VR了,所有的VR相关的配置和操作都要重新学习。今天就来总结一下,我在开发VR过程中碰到的所有问题。好了,以上就是我目前做VR时碰到的一些问题,希望对你有所帮助。

TxNet 2482

《c和指针》第15章 输入/输出函数

在进行输入/输出操作时,可能会发生各种错误,如文件不存在、磁盘已满等。C语言提供了一些机制来报告这些错误,以便程序员能够及时处理。errno是一个全局变量,定义在<errno.h>头文件中。当一个函数发生错误时,它通常会设置errno来指示错误类型。例如,fopen函数在无法打开文件时会设置errno。可以通过perror函数来打印与errno值对应的错误信息。函数会输出一条包含函数名和错误描述的消息,帮助开发者定位问题。

qq_40844444的博客 953

TC3XX - MCAL知识点(三十七):AURIX™ TC3xx 的BootLoader烧录APP完成之后跳转使多个核均正常运行

摘要:针对AURIX TC3xx多核芯片在软件复位后仅Core0能启动的问题,分析发现该芯片在Cold Power-on Reset(断电复位)时会完整执行多核启动流程,而Application Reset(软件复位)会跳过从核初始化。解决方案包括:1)在BootLoader中显式调用IfxCpu_startCore()函数启动其他核;2)通过跳转函数强制各核从指定地址启动;3)双Boot场景下让每个核独立响应复位命令。实测表明,软件复位后需手动触发从核启动,或采用断电复位方式确保所有核正常初始化。

梦想技术家 408

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

【C】【笔记】《C和指针》第15章 输入/输出函数

本文为个人读书笔记,仅供记录学习过程中遇到的日后需要留意的问题,如有相关版权问题请及时通知作者。 错误报告      标准库函数在一个外部整形变量errno(在errno.h中定义)保存错误代码之后把这个信息传递给用户程序,提示操作失败的准确原因。      perror函数简化向用户报告这些特定错误的过程。它的原型定义与stdio.h           void perro

在咖啡里溺水的鱼 841

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

C和指针 第15章 输入/输出函数 15.20 问题

C和指针 第15章 输入/输出函数 15.20 问题

weixin_客子光阴的博客 316

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

C和指针 第15章 输入/输出函数 15.12 刷新和定位函数

C和指针 第15章 输入/输出函数 15.12 刷新和定位函数

weixin_客子光阴的博客 167

C和指针(学习笔记)_第15章 输入/输出函数

1.错误报告 perror函数以一种简单、统一的方式报告错误。标准库函数在一个外部整型变量errno(在errno.h中定义)中保存错误代码之后把这个信息传递给用户程序,提示操作失败的准确原因。perror函数简化向用户报告这些特点错误的过程。它的原型定义与stdio.h: void perror(char const *message) 如果message不是NULL并且指向一个非空的字符串,perror函数就打印出这个字符串,后面跟一个分号和一...

溯源守拙的博客 373

C和指针 第15章 输入/输出函数 15.8 字符I/O

C和指针 第15章 输入/输出函数 15.8 字符I/O

weixin_客子光阴的博客 136

C和指针 第15章 输入/输出函数 15.6 打开流

C和指针 第15章 输入/输出函数 15.6 打开流

weixin_客子光阴的博客 145

C和指针 第15章 输入/输出函数 15.4 ANSI I/O概念

C和指针 第15章 输入/输出函数 15.4 ANSI I/O概念

weixin_客子光阴的博客 166

C和指针 第15章 输入/输出函数 15.5 流I/O总览

C和指针 第15章 输入/输出函数 15.5 流I/O总览

weixin_客子光阴的博客 118

C和指针 第15章 输入/输出函数 15.11 二进制I/O

C和指针 第15章 输入/输出函数 15.11 二进制I/O

weixin_客子光阴的博客 142

C和指针 第15章 输入/输出函数 15.1 错误报告

C和指针 第15章 输入/输出函数 15.1 错误报告

weixin_客子光阴的博客 129

C和指针 第15章 输入/输出函数 15.16 文件操纵函数

C和指针 第15章 输入/输出函数 15.16 文件操纵函数

weixin_客子光阴的博客 102
上一篇: C和指针---预处理器
下一篇: C和指针---标准函数库
ldxFashion
博客等级 码龄6年 0粉丝 21原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值