C语言---文件操作(1)

1.文件的打开和关闭

fopen有2个参数,第一个是文件的名字,第二个是打开的模式(例如是读文件还是写文件)

(1)该文件夹下面没有data.txt文件,但是我执行了read操作,所以会显示这样的错误

(2)如果是写的话,就会创建一个新的文件,不会报错

(3)每一个被使用的文件都在内存里面开辟了文件信息区,用来保存相关的信息,这些信息放在

结构体里面,一般通过FILE指针维护这个变量,简称文件指针;

(4)关闭文件fclose(pf),它的参数就是我们命名的文件指针

(5)我们使用printf,scanf这些函数的时候,当程序开始运行,就会默认的打开3个流--标准输入流

stdin---标准输出流stdout---标准错误流stderr,所以我们可以直接的输入输出,但是对于文件的话,

肯定不能说是默认打开某个文件,所以我们需要人为地进行打开和关闭的操作;

2.文件的读写

------fputc/fgetc

(1)顺序读写:就是把上面的’a''b''c'字符打印到文件里面,放到文件里面

我们也可以使用循环打印字符到相应的文件里面,放到控制台里面

stdout直接打印到屏幕上面

---------------------------------

读文件:fopen的第二个参数修改成r

(1)输出原来的文件里面的内容(把文件内容显示出来)

(2)从键盘上面写,然后输出内容,使用stdin(把输入的内容显示出来)

---------------------------------------------------------------------------------------------------------------------------------

------fputs/fgets

(1)写入一行数据,

(2)读出一行数据

这个里面有3个参数,多了第二个参数,就是读取的个数,最后会打印num-1个字符,我们写的是

10,最后输出了9个文件里面的字符;

一行8个字符,你想让他读取10个,他最多会读取8个,因为遇到斜杠n就会提前结束;

---------------------------------------------------------------------------------------------------------------------------------

------fprintf/fscanf

fprintf和printf的不同就是前面多了个参数,也就是我们定义的文件指针

fscanf也是前面加上一个文件指针

这个里面的输出也可以使用fprintf(stdout,"%d %f",sa,s.b);

---------------------------------------------------------------------------------------------------------------------------------

------scanf/sprintf

sprintf

就是把所有的内容放到arr数组里面,然后进行打印;

sscanf就是把s里面的东西放到temp这个结构体变量里面,最后printf打印输出

------辨析总结

---------------------------------------------------------------------------------------------------------------------------------

------fwrite/fread

以二进制的方式进行读写

写进去的是二进制文件,所以我们看不懂

八度进去的东西写出来,果然读取进去了,fread的返回值是实际读取的个数,可能比我们想要读取的数字小。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/424350.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

链表类型题目

文章目录 简介链表的常用技巧两数相加原理代码代码|| 两两交换链表中的节点代码原理 重排链表(重要)原理代码 合并 K 个升序链表代码递归代码 K 个一组翻转链表原理代码 简介 大家好,这里是jiantaoyab,这篇文章给大家带来的是链表相关的题目练习和解析,希望大家能相互讨论进步 …

强化学习_06_pytorch-PPO实践(Hopper-v4)

一、PPO优化 PPO的简介和实践可以看笔者之前的文章 强化学习_06_pytorch-PPO实践(Pendulum-v1) 针对之前的PPO做了主要以下优化: batch_normalize: 在mini_batch 函数中进行adv的normalize, 加速模型对adv的学习policyNet采用beta分布(0~1): 同时增加MaxMinScale …

排序(3)——直接选择排序

目录 直接选择排序 基本思想 整体思路(升序) 单趟 多趟 代码实现 特性总结 直接选择排序 基本思想 每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的…

JOSEF约瑟 漏电继电器LLJ-400F 配套零序互感器φ100mm 50-500mA 0.1S 导轨安装

系列型号: LLJ-150F(S)漏电继电器 LLJ-160F(S)漏电继电器 LLJ-200F(S)漏电继电器 LLJ-250F(S)漏电继电器 LLJ-300F(S)漏电继电器 LLJ-320F(S)漏电继电器 LLJ-400F(S)漏电继电器 LLJ-500F(S)漏电继电器 LLJ-600F(S)漏电继电器 一、产品用途及特点 LLJ-FS系列漏电继电…

MWC 2024丨美格智能推出5G RedCap系列FWA解决方案,开启5G轻量化新天地

2月27日,在MWC 2024世界移动通信大会上,美格智能正式推出5G RedCap系列FWA解决方案。此系列解决方案具有低功耗、低成本等优势,可以显著降低5G应用复杂度,快速实现5G网络接入,提升FWA部署的经济效益。 RedCap技术带来了…

MATLAB知识点:if条件判断语句的嵌套

​讲解视频:可以在bilibili搜索《MATLAB教程新手入门篇——数学建模清风主讲》。​ MATLAB教程新手入门篇(数学建模清风主讲,适合零基础同学观看)_哔哩哔哩_bilibili 节选自​第4章:MATLAB程序流程控制 我们通过一个…

NCT 全国青少年编程图形化编程(Scratch)等级考试(一级)模拟测试H

202312 青少年软件编程等级考试Scratch一级真题 第 1 题 【 单选题 】 以下说法合理的是( ) A :随意点开不明来源的邮件 B :把密码设置成 abc123 C :在虚拟社区上可以辱骂他人 D :在改编他人的作品前, 先征得他人同意 正确答案: D 试题解析&…

【Scratch画图100例】图49-scratch绘制直角风车 少儿编程 scratch编程画图案例教程 考级比赛画图集训案例

目录 scratch绘制直角风车 一、题目要求 1、准备工作 2、功能实现 二、案例分析 1、角色分析 2、背景分析 3、前期准备 三、实现流程 1、案例分析 2、详细过程 四、程序编写 五、考点分析 六、推荐资料 1、入门基础 2、蓝桥杯比赛 3、考级资料 4、视频课程 …

regexpire-攻防世界-MISC

用nc链接靶机: rootkali:~/Desktop# nc 220.249.52.133 37944 Can you match these regexes? Bv*(clementine|sloth)*Q*eO(clinton|alien)*(cat|elephant)(cat|trump)[a-zA-Z]*(dolphin|clementine)\W*(table|apple)* 大致上是服务端给出一个正则表达式&#xff0c…

基于springboot的宠物咖啡馆平台的设计与实现论文

基于Spring Boot的宠物咖啡馆平台的设计与实现 摘要 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了基于Spring Boot的宠物咖啡馆平台的设计与实现的开发全过程。通过分析基于Spring Boot的宠物咖啡馆平台的设计与…

鸿蒙Harmony应用开发—ArkTS声明式开发(通用属性:形状裁剪)

用于对组件进行裁剪、遮罩处理。 说明: 从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 clip clip(value: boolean | CircleAttribute | EllipseAttribute | PathAttribute | RectAttribute) 按指定的形状对当…

数据结构:排序算法+查找算法

一、概念 程序数据结构算法 1.算法的特性和要求 特性: 确定性(每次运行相同的输入都是同样的结果)、有穷性、输入、输出、可行性 设计要求: 正确性、高效率、低存储、健壮性、可读性 2.时间复杂度 3.常见排序算法的时间复杂…

6.5 共享数据

本节介绍Android的四大组件之一ContentProvider的基本概念和常见用法:首先说明如何使用内容提供器封装内部数据的外部访问接口,然后阐述如何使用内容解析器通过外部接口操作内部数据,最后叙述如何利用内容解析器读写联系人信息,以…

SQL无列名注入

SQL无列名注入 ​ 前段时间,队里某位大佬发了一个关于sql注入无列名的文章,感觉好像很有用,特地研究下。 关于 information_schema 数据库: ​ 对于这一个库,我所知晓的内容并不多,并且之前总结SQL注入的…

2W字-35页PDF谈谈自己对QT某些知识点的理解

2W字-35页PDF谈谈自己对QT某些知识点的理解 前言与总结总体知识点的概况一些笔记的概况笔记阅读清单 前言与总结 最近,也在对自己以前做的项目做一个知识点的梳理,发现可能自己以前更多的是用某个控件,以及看官方手册,但是没有更…

EchoServer回显服务器简单测试

目录 工具介绍 工具使用 测试结果 工具介绍 github的一个开源项目,是一个测压工具 EZLippi/WebBench: Webbench是Radim Kolar在1997年写的一个在linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的…

【Vue3】解锁Vue3黑科技:探索接口、泛型和自定义类型的前端奇迹

💗💗💗欢迎来到我的博客,你将找到有关如何使用技术解决问题的文章,也会找到某个技术的学习路线。无论你是何种职业,我都希望我的博客对你有所帮助。最后不要忘记订阅我的博客以获取最新文章,也欢…

WebServer -- 注册登录

目录 🍉整体内容 🌼流程图 🎂载入数据库表 提取用户名和密码 🚩同步线程登录注册 补充解释 代码 😘页面跳转 补充解释 代码 🍉整体内容 概述 TinyWebServer 中,使用数据库连接池实现…

vscode c/c++ 检测到 #include 错误。请更新 includePath。

问题背景 使用vscode打开项目后,头文件显示红色波浪线,没有引入。 检测到 #include 错误。请更新 includePath。已为此翻译单元(xxx)禁用波形曲线。 解决方法 gcc -v -E -x c - 显示所有头文件路径。 打开c_cpp_properties.json文件,粘贴…

Verilog Constructs、Verilog系统任务和功能

下表列出了Verilog构造在Vivado合成中的支持状态。 Verilog系统任务和功能 Vivado合成支持系统任务或功能,如下表所示。Vivado合成会忽略不支持的系统任务。 使用转换函数 使用以下语法对任何表达式调用$signed和$unsigned系统任务。 $signed(expr&am…