【C语言】手把手教你文件操作

这篇具有很好参考价值的文章主要介绍了【C语言】手把手教你文件操作。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、前言

程序运行时,数据存放在内存中,而当程序退出后,数据也就不复存在。

想做到数据持久化,我们可以把数据存放在硬盘,或者放到数据库里。而在C语言中,利用文件操作,就可以将数据存放在硬盘上。

二、文件的打开和关闭

读写之前应该先打开文件,使用结束之后要关闭文件。

1. fopen函数

FILE * fopen ( const char * filename, const char * mode );
  • fopen函数用于打开文件。
  • filename是要打开的文件名,mode是文件的使用方式。
  • FILE是描述文件信息的结构体类型,在头文件stdio.h中定义
  • 打开文件后,函数返回FILE*类型的文件指针。

需要注意,在字符串中表示\时,必须使用转义字符\\
所以filename应该如下图所示:
【C语言】手把手教你文件操作
文件名由文件路径、文件名主干和文件后缀三个部分组成。

例如E:\test.txt

  • E:\是文件路径
  • test是文件名主干
  • .txt是文件后缀

如果filename中省略文件路径,只写文件名主干和文件后缀的话,文件会默认保存在本工程的目录下。
【C语言】手把手教你文件操作
文件的使用方式有以下这些:
【C语言】手把手教你文件操作
文本文件是指以ASCII码形式存储的文件,每个字符占1个字节。

  • 如10000这个数据以文本文件形式存储,那么每个数字看作一个字符,总共占5个字节。

二进制文件是指数据以二进制形式存储的文件。

  • 如10000这个数据以二进制文件形式存储,那么只需将10000转换成二进制存入内存中就行了。

2. fclose函数

int fclose ( FILE * stream );
  • fclose函数用于关闭文件。
  • stream是要关闭的文件的文件指针。
  • fclose函数关闭文件后不会置空文件指针,需手动置空。

三、文件的顺序读写

C语言提供了一系列文件输入输出函数。
【C语言】手把手教你文件操作
注意,这里的输入是从文件中读内容,输出是往文件里写内容

每个函数的具体用法可以查阅文档学习。文章来源地址https://www.toymoban.com/news/detail-446412.html

四、文件的随机读写

1. fseek函数

int fseek ( FILE * stream, long int offset, int origin );
  • 文件在读写时,文件指针指向的位置是会随着读写而改变的。
  • fseek函数可以用于将文件指针定位到我们想要的位置。
  • stream是文件指针,offset是我们想要设置的文件指针的偏移量。
  • origin是从哪里开始偏移,我们可以设置为SEEK_SET(文件起始位置)、SEEK_CUR(文件指针当前位置)、SEEK_END(末尾)。

2. ftell函数

long int ftell ( FILE * stream );
  • 该函数用于返回文件指针相对于起始位置的偏移量。
  • 我们可以利用ftell函数来获取文件指针当前的位置。

3. fwind函数

void rewind ( FILE * stream );
  • 该函数用于让文件指针回到文件的起始位置。

到了这里,关于【C语言】手把手教你文件操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 手把手教你实现一个循环队列(C语言)

    这是一道leetcode关于队列的经典题: 622. 设计循环队列 https://leetcode.cn/problems/design-circular-queue/  大家注意这个题目要求,这个队列是定长的,如果满了则不能再添加数据。那么我们设计一个队头front和队尾rear,每次添加数据rear向后走,这时就有一个问题, 怎么区分空和满呢

    2024年02月04日
    浏览(60)
  • 手把手教你小程序反编译

    1.反编译工具unveilr :百度网盘链接:https://pan.baidu.com/s/10Wle8CwvBq54GPWcbEnxLQ 提取码:bivh   解压即可用。 2.微信开发者工具:https://developers.weixin.qq.com/miniprogram/dev/devtools/stable.html 1.获取小程序存储文件夹 (1)打开PC端微信设置,在文件管理中找到存储路径,选择打开文件夹。

    2024年04月12日
    浏览(45)
  • 手把手教你绘制小程序海报

    海报分享功能在许多应用中应该是很常见的,因为它作为一种常用的应用推广和拉新的方式。 接下来看个实际的案例,如下: 把任务拆解下: 如何绘制海报 如何把绘制后的海报保存到相册 用 canvas 来绘制海报。 这里需要了解基本的 canvas api ,不熟悉可以先去了解下相关

    2024年02月04日
    浏览(53)
  • 手把手教你反编译小程序

    操作系统: win10 10.0.19042 node: v14.17.0 微信开发者工具: Stable 1.05.2110290 在电脑端安装模拟器工具,这里以夜神模拟器为例, 在模拟器中安装微信:用于微信打开小程序时加载小程序包。 在模拟器中文件管理器:用于查看小程序包,这里使用模拟器自带的Amaze。 文件共享路径:可

    2024年02月08日
    浏览(43)
  • 手把手教你开通小程序流量主

    开通条件是累计独立访客不低于 1000。也就是1000级以上,其实这个不难。 接下来以防火安全知识专项学习与竞答为例,写一篇开通流量主、创建广告和代码嵌入的图文教程。 广告展示位置灵活控制,接入简单,仅需复制广告插件嵌入代码 数据精准透明,可按天查看收入 广告

    2024年02月09日
    浏览(43)
  • [Linux]手把手教你制作进度条小程序

    C语言中字符分为两种: 可显字符 控制字符 其中可显字符就是字符a这类的字符,控制字符就是n这种控制字符。 对于我们制作进度条,我们只需要关注两个控制字符: r – 进行回车操作 n – 进行换行加回车操作 说明: n本身是换行字符,但是C语言本身将其解析成了换行加回

    2024年02月14日
    浏览(49)
  • 手把手教你在ARM板上写一个驱动程序!

    摘要:搞嵌入式有两个方向,一个是嵌入式软件开发(MCU方向),另一个是嵌入式软件开发(Linux方向)。其中MCU方向基本是裸机开发和RTOS开发。而Linux开发方向又分为驱动开发和应用开发。其中应用开发相比于驱动开发来说简单一些,因为搞驱动你要和Linux内核打交道。而我们普

    2024年02月01日
    浏览(87)
  • 手把手教你在Linux/Windows系统使用Nginx部署多个前端项目【详细操作】

            需求:项目上线需要将前端的前台和后台部署在服务器上提供用户进行使用,部署在不同的服务器直接在服务器安装nginx即可。但是在内网安装还是有点麻烦,因为需要联网,如果是内网可以参考Linux安装Nginx并部署前端项目【内/外网-保姆级教程】_MXin5的博客-CSDN博

    2024年02月14日
    浏览(61)
  • SpringBoot操作ES进行各种高级查询(值得收藏),阿里P7大佬手把手教你

    for(SearchHit hit:searchHits){ // 文档的主键 String id = hit.getId(); // 源文档内容 MapString, Object sourceAsMap = hit.getSourceAsMap(); String name = (String) sourceAsMap.get(“name”); // 由于前边设置了源文档字段过虑,这时description是取不到的 String description = (String) sourceAsMap.get(“description”

    2024年04月24日
    浏览(44)
  • web分析-手把手教你怎么写小程序事件分析

    概述 小程序提供了自定义埋点方法,需要在业务代码中新增对应的代码。 区别于小程序已有的页面、用户等埋点,web分析中的自定义的方法往往与业务场景相关。 本文会按步骤详细介绍小程序的事件、事件分析、漏斗分析的创建流程。 该事件主要用于记录用户进入首页之后

    2024年02月10日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包