返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >一篇文章带你了解C语言文件操作中的几个函数
  • 860
分享到

一篇文章带你了解C语言文件操作中的几个函数

2024-04-02 19:04:59 860人浏览 八月长安
摘要

目录总结fopen:有两个参数,第一个是要被打开或者被创建的文件名,第二个是以什么方式打开。这两个参数要分别用双引号括起来 打开文件和关闭文件的基本流程,关闭文件之后要置空 f

fopen:有两个参数,第一个是要被打开或者被创建的文件名,第二个是以什么方式打开。这两个参数要分别用双引号括起来

打开文件和关闭文件的基本流程,关闭文件之后要置空

fwrite:有四个参数,第一个是指向要被写入的数据的指针,这里是a的地址;第二个参数是被写入项的大小,单位是字节,这里是a的大小;第三个参数是要被写入的项的个数,这里是1,意思是写入一个a;最后一项是FILE结构的指针,这里是pf。这四个参数不需要双引号。

文件指针:、

每个被使用的文件都在内存中开辟了一个相应的文件信息区,用来存放文件的相关信息(比如文件的名字、文件状态以及文件当前的位置等)。这些信息都是保存在一个结构体变量中的,该结构体类型是有系统声明的,取名FILE。

不同的编译器FILE类型包含的内容并不完全相同,但是都大同小异。每当打开一个文件的时候,系统都会根据文件的情况自动创建一个FILE结构的变量,并填充其中的信息,使用者并不用关心细节。一般都是通过一个FILE结构体的指针(pf)来维护这个FILE结构的变量,这样使用起来更加方便。

fgetc:只有一个参数,是FILE结构的指针,每次从该指针指向的数据中读取一个字符

fputc:有两个参数,第一个是要被写入的字符,用单引号括起来,第二个是FILE类型的指针,这里是pfWrite

fgets:用于读取字符串,有三个参数,第一个是读取的数据要存放的位置(数组),第二个是可以读取的最大字符数,第三个是FILE结构的指针,这里是标准输入流(键盘)下图中是从键盘输入,再输出到屏幕

fputs:用于输出字符串,如果成功,函数会返回一个非负值,有两个参数,第一个是要被输出字符串数组,第二个是FILE结构的指针,这里是标准输出流(屏幕)

gets:如果成功,函数会返回其参数,只有一个参数,即输入字符串的存储位置---buffer缓冲区

puts:如果成功,函数返回一个非负值,只有一个参数,即输出字符串所在的数组的地址

下图这两组函数的功能一样,程序运行后,在键盘上输入什么字符或字符串,按下回车后,就会在屏幕上打印什么字符或字符串

fprintf:格式化的写(输出)数据--这里是写进去一个结构体,直接打印出来,该函数有三个参数,第一个是指向FILE结构体的指针(pf),意思是将数据写到pf所指向的结构体当中,第二个是格式,要输出的数据的格式,要和后面的数据一一对应,第三个参数是要被输出的数据(可以是结构体,如下图)

fscanf:格式化的输入数据,有三个参数,第一个是指向FILE结构体的指针(pf),第二个是 格式,第三个是要被写入的数据的地址,这里在注意是地址,经常出错,类比scanf,只比scanf多了第一个参数

sprintf:格式化的输入,有三个参数,第一个参数是要被写入内容的数组地址,第二个是格式,第三个是要被写入的数据---主义的是,下图中,sprintf函数是给字符数组char buf[]写入结构体数据,结构体中有不同的格式,这里需要注意输入信息的时候是按照%d%f%s对应的格式输入的,也就是结构体成员对应的格式,输入到数组buf中后才将格式都转换为字符,这里打印出来的100;3.140000也都是字符型

sscanf是格式化的读取函数,这里是将刚才上图写入到数组buf中的数据读取到结构体变量tmp当中,读入时会按照结构体成员对应的格式将字符数组char buf中的数据进行转换,再存储到结构体变量tmp中。

sscanf依然是三个参数,第一个是被读数组地址,第二个是被写入数据的结构体成员的对应格式,第三个是结构体成员对应的地址,这里要取地址,切记

下面的知识点面试可能会用到,务必搞懂

scanf和printf是针对标准输入流(键盘)/标准输出流(屏幕)的格式化输入/输出语句。

fscanf和fprintf是针对所有输入流/标准输出流的格式化输入/输出语句。

sscanf和sprintf是:ssacnf是从字符串中读取格式化的数据,sprintf是把格式化数据输出成(存储到)字符串中。

fseek:有三个参数,第一个是指向FILE结构体的指针pf,第二个是偏移量(可正可负),第三个是文件指针的当前位置(SEEK_CUR文件指针的当前位置\SEEK_END文件的末尾位置\SEEK_SET文件的起始位置)

perror报错函数,不需要单独引头文件,不需要写参数,perror(“hehe”);这个表达式会先打印hehe: 再报出错误原因,它会自行判断错误原因并打印,用起来很方便

strerror也是报错函数,使用:strerror(errno);,使用时需要引头文件#include<string.h>

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注编程网的更多内容!

--结束END--

本文标题: 一篇文章带你了解C语言文件操作中的几个函数

本文链接: https://lsjlt.com/news/135524.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 一篇文章带你了解C语言文件操作中的几个函数
    目录总结fopen:有两个参数,第一个是要被打开或者被创建的文件名,第二个是以什么方式打开。这两个参数要分别用双引号括起来 打开文件和关闭文件的基本流程,关闭文件之后要置空 f...
    99+
    2024-04-02
  • 一篇文章带你了解C语言的文件操作
    目录为什么使用文件什么是文件程序文件数据文件文件名文件的打开和关闭文件指针fopen和fclose函数文件的顺序读写总结为什么使用文件 我们在想既然是通讯录就应该把信息记录下来,只有...
    99+
    2024-04-02
  • 一篇文章带你了解C语言操作符
    目录一、操作符分类 二、算术操作符三、移位操作符1、左移操作符 2、右移操作符2.1算术移位 2.2逻辑移位 四、位操作符 1、按位...
    99+
    2024-04-02
  • 一篇文章带你了解C语言函数递归
    目录什么是递归?递归的两个必要条件递归实例实例1(按照顺序打印一个数的整形值)画图讲解 完整代码 实例2 (使用函数在不创建变量的情况下求字符串长度)画图讲解程序...
    99+
    2024-04-02
  • 一篇文章带你入门C语言:函数
    目录函数定义库函数定义介绍Example 1 strcpyExample 2 memset自定义函数Example 1Example 2 两数交换链式访问Example 1函数声明函...
    99+
    2024-04-02
  • 一篇文章带你入门C语言:操作符
    目录操作符分类算术操作符移位操作符整数存储规则左右移位规则赋值操作符单目操作符取地址操作符& 解引用操作符*类型长度操作符sizeof按位取反操作符~++ -- 操作符强制类...
    99+
    2024-04-02
  • 一篇文章带你了解C语言函数的可重入性
    目录一、不可重入函数。二、可重入函数。三、如何写出可重入的函数四、函数的可重入性和线程安全的关系五、malloc和printf为什么不可重入总结一、不可重入函数。 在函数中如果我们使...
    99+
    2024-04-02
  • 一篇文章带你了解C语言--数据的储存
    目录前言数据类型介绍类型的基本归类整形在内存中的存储原码、反码、补码大小端介绍浮点型在内存中的存储前言 前面我们学习了C语言的一些基本知识和基础的语法,想必大家对C语言都有了自己的认...
    99+
    2024-04-02
  • 一篇文章带你了解C/C++的回调函数
    目录函数指针概念先来看一个Hello World程序然后,采用函数调用的形式来实现用函数指针的方式来实现函数指针数组回调函数概念标准Hello World程序将它修改成函数回调样式修...
    99+
    2024-04-02
  • 一篇文章带你了解C语言中volatile关键字
    目录C语言中volatile关键字总结C语言中volatile关键字 volatile关键字是C语言中非常冷门的关键字,因为用到这个关键字的场景并不多。 当不用这个关键字的时候,CP...
    99+
    2024-04-02
  • 一篇文章带你了解C语言:入门基础
    目录C语言本身特点数据类型常量变量变量分类使用小建议生命周期作用域常量分类及其特点字符串+转义字符+注释字符串转义字符两种注释选择循环语句函数数组总结闲话少说,先上思维导图。 如图...
    99+
    2024-04-02
  • 一篇文章带你了解C语言内存对齐
    目录内存对齐三、在内存对齐话题下的sizeof与offsetof宏3.1、sizeof3.2、offsetof宏3.3、Debug总结内存对齐 先看如下代码: 结构体Test1...
    99+
    2024-04-02
  • 一篇文章带你了解C语言二分查找
    目录总结我们常常需要对数据进行查找,修改,查找数据有许多方法,我们先看看最简单的顺序查找 int main() { int i, k = 0; scanf("%d", &am...
    99+
    2024-04-02
  • 一篇文章带你了解C语言指针进阶
    目录1.字符指针2.指针数组3.数组指针4.函数指针5.数组传参总结1.字符指针 我们已经知道了数组名在大部分时候表示数组的地址,指针本质上也表示一个地址,那么我们能否用指针来创建一...
    99+
    2024-04-02
  • 一篇文章带你了解C语言的选择结构
    目录一、if-else语句1.单选择 2.双选择3.多选择二.switch语句总结一、if-else语句 1.单选择 单选择通过if语句就可以实现,if语句的语法及执行流程...
    99+
    2024-04-02
  • 一篇文章带你入门C语言:数组
    目录数组一维数组初始化使用总结:内存存储二维数组创建初始化数组越界问题数组作函数参数应用实例总结数组 一维数组 创建 定义 数组是一组相同类型的元素的集合。那数组的语法形式: t...
    99+
    2024-04-02
  • 一篇文章带你了解C语言:入门基础(2)
    目录操作符算术操作符移位操作符位操作符单目操作符逻辑反操作!操作符++,--逻辑操作符条件操作符逗号表达式常见关键字typedefexternstatic修饰局部变量修饰全局变量和函...
    99+
    2024-04-02
  • 一篇文章带你了解C++中的异常
    目录异常抛出异常基本操作自定义的异常类栈解旋异常接口声明异常变量的生命周期异常的多态c++的标准异常库编写自己的异常类总结异常 在c语言中,对错误的处理总是两种方法: 1,使用整型的...
    99+
    2024-04-02
  • 一篇文章带你了解JavaScript-语句
    目录表达式语句复合语句和空语句复合语句空语句声明语句varfunction条件语句ifif/elseelse ifswitch循环whiledo/whileforfor/in跳转标签...
    99+
    2024-04-02
  • 一篇文章带你了解几个好用的Python技巧
    目录列表1. 将两个列表合并到一个字典中2.将两个或多个列表合并为一个列表3. 对字典列表进行排序4. 对字符串列表进行排序5. 根据另一个列表对列表进行排序6. 将列表映射到字典字...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作