当前位置: 首页 > news >正文

C语言文件读写常用函数

文章目录

    • 1. fopen函数
    • 2. fclose函数
    • 3. fgetc函数
    • 4. fgets函数
    • 5. fputc函数
    • 6. fputs函数
    • 7. fprintf函数
    • 8. fscanf函数
    • 9. fseek函数
    • 10. ftell函数

1. fopen函数

  • 返回值:文件指针(FILE*)
  • 参数:文件名(包括文件路径)、打开模式(例如:"r"表示只读,"w"表示写入,"a"表示追加)
  • 用法:用于打开一个文件,并返回一个文件指针,以便后续的文件操作。
#include <stdio.h>int main() {FILE *file = fopen("example.txt", "r");if (file == NULL) {printf("Failed to open the file.\n");return 1;}// 文件操作...fclose(file);return 0;
}

2. fclose函数

  • 返回值:整数类型(0表示成功,EOF表示失败)
  • 参数:文件指针(FILE*)
  • 用法:用于关闭一个已打开的文件。
#include <stdio.h>int main() {FILE *file = fopen("example.txt", "r");if (file == NULL) {printf("Failed to open the file.\n");return 1;}// 文件操作...fclose(file);return 0;
}

3. fgetc函数

  • 返回值:整数类型(读取的字符的ASCII码值,读取失败返回EOF)
  • 参数:文件指针(FILE*)
  • 用法:用于从文件中读取一个字符。
#include <stdio.h>int main() {FILE *file = fopen("example.txt", "r");if (file == NULL) {printf("Failed to open the file.\n");return 1;}int ch;while ((ch = fgetc(file)) != EOF) {printf("%c", ch);}fclose(file);return 0;
}

4. fgets函数

  • 返回值:字符指针(读取的字符串,读取失败返回NULL)
  • 参数:字符数组、最大读取字符数、文件指针(FILE*)
  • 用法:用于从文件中读取一行字符串。
#include <stdio.h>int main() {FILE *file = fopen("example.txt", "r");if (file == NULL) {printf("Failed to open the file.\n");return 1;}char buffer[100];while (fgets(buffer, 100, file) != NULL) {printf("%s", buffer);}fclose(file);return 0;
}

5. fputc函数

  • 返回值:整数类型(写入的字符的ASCII码值,写入失败返回EOF)
  • 参数:字符、文件指针(FILE*)
  • 用法:用于向文件中写入一个字符。
#include <stdio.h>int main() {FILE *file = fopen("example.txt", "w");if (file == NULL) {printf("Failed to open the file.\n");return 1;}char ch = 'A';fputc(ch, file);fclose(file);return 0;
}

6. fputs函数

  • 返回值:整数类型(成功返回非负值,失败返回EOF)
  • 参数:字符串、文件指针(FILE*)
  • 用法:用于向文件中写入一个字符串。
#include <stdio.h>int main() {FILE *file = fopen("example.txt", "w");if (file == NULL) {printf("Failed to open the file.\n");return 1;}char *str = "Hello, World!";fputs(str, file);fclose(file);return 0;
}

7. fprintf函数

  • 返回值:整数类型(成功返回写入的字符数,失败返回负值)
  • 参数:文件指针(FILE*)、格式化字符串、可变参数
  • 用法:用于按照指定的格式将数据写入文件。
#include <stdio.h>int main() {FILE *file = fopen("example.txt", "w");if (file == NULL) {printf("Failed to open the file.\n");return 1;}int num = 10;fprintf(file, "The number is: %d\n", num);fclose(file);return 0;
}

8. fscanf函数

  • 返回值:整数类型(成功返回读取的项目数,失败返回负值)
  • 参数:文件指针(FILE*)、格式化字符串、可变参数
  • 用法:用于从文件中按照指定的格式读取数据。
#include <stdio.h>int main() {FILE *file = fopen("example.txt", "r");if (file == NULL) {printf("Failed to open the file.\n");return 1;}int num;fscanf(file, "%d", &num);printf("The number is: %d\n", num);fclose(file);return 0;
}

9. fseek函数

  • 返回值:整数类型(0表示成功,非0表示失败)
  • 参数:文件指针(FILE*)、偏移量(long int)、起始位置(int)
  • 用法:用于设置文件指针的位置,实现文件的定位操作。

10. ftell函数

  • 返回值:长整型(当前文件指针的位置)
  • 参数:文件指针(FILE*)
  • 用法:用于获取文件指针的当前位置。

下面是fseek和ftell函数的示例代码:

#include <stdio.h>int main() {FILE *file = fopen("example.txt", "r");if (file == NULL) {printf("Failed to open the file.\n");return 1;}// 使用fseek函数定位文件指针到文件末尾fseek(file, 0, SEEK_END);// 使用ftell函数获取文件指针的当前位置long int size = ftell(file);printf("The size of the file is: %ld bytes\n", size);fclose(file);return 0;
}

在上述示例代码中,首先打开了一个文件,然后使用fseek函数将文件指针定位到文件末尾,接着使用ftell函数获取文件指针的当前位置,即文件的大小。最后关闭文件。

使用fseek函数和ftell函数可以实现文件的定位和随机读写操作。



相关文章:

C语言文件读写常用函数

文章目录 1. fopen函数2. fclose函数3. fgetc函数4. fgets函数5. fputc函数6. fputs函数7. fprintf函数8. fscanf函数9. fseek函数10. ftell函数 1. fopen函数 返回值&#xff1a;文件指针&#xff08;FILE*&#xff09;参数&#xff1a;文件名&#xff08;包括文件路径&#…...

【C++基础】实现日期类

​&#x1f47b;内容专栏&#xff1a; C/C编程 &#x1f428;本文概括&#xff1a; C实现日期类。 &#x1f43c;本文作者&#xff1a; 阿四啊 &#x1f438;发布时间&#xff1a;2023.9.7 对于类的成员函数的声明和定义&#xff0c;我们在类和对象上讲到过&#xff0c;需要进行…...

C语言程序设计—通讯录实现

本篇文章主要是实现一个简易的通讯录&#xff1a; 功能如下&#xff1a; 添加用户修改用户删除用户查找用户&#xff08;可重名&#xff09;按名字或年龄排序显示用户保存通讯录日志追加 有如下知识点&#xff1a; 动态数组结构体枚举自定义标识符和宏文件打开与存储函数指针…...

实战:大数据Flink CDC同步Mysql数据到ElasticSearch

文章目录 前言知识积累CDC简介CDC的种类常见的CDC方案比较 Springboot接入Flink CDC环境准备项目搭建 本地运行集群运行将项目打包将包传入集群启动远程将包部署到flink集群 写在最后 前言 前面的博文我们分享了大数据分布式流处理计算框架Flink和其基础环境的搭建&#xff0c…...

B-Tree 索引和 Hash 索引的对比

分析&回答 B-Tree 索引的特点 B-tree 索引可以用于使用 , >, >, <, < 或者 BETWEEN 运算符的列比较。如果 LIKE 的参数是一个没有以通配符起始的常量字符串的话也可以使用这种索引。 有时&#xff0c;即使有索引可以使用&#xff0c;MySQL 也不使用任何索引。…...

入门Python编程:了解计算机语言、Python介绍和开发环境搭建

文章目录 Python入门什么是计算机语言1. 机器语言2. 符号语言&#xff08;汇编&#xff09;3. 高级语言 编译型语言和解释型语言1. 编译型语言2. 解释型语言 Python的介绍Python开发环境搭建Python的交互界面 python学习专栏python基础知识&#xff08;0基础入门&#xff09;py…...

深度解析Redisson框架的分布式锁运行原理与高级知识点

推荐阅读 项目实战:AI文本 OCR识别最佳实践 AI Gamma一键生成PPT工具直达链接 玩转cloud Studio 在线编码神器 玩转 GPU AI绘画、AI讲话、翻译,GPU点亮AI想象空间 资源分享 史上最全文档AI绘画stablediffusion资料分享 AI绘画关于SD,MJ,GPT,SDXL百科全书 AI绘画 stable…...

C#扩展方法

参数列表中this的这种用法是在.NET 3.0之后新增的一种特性---扩展方法。通过这个属性可以让程序员在现有的类型上添加扩展方法&#xff08;无需创建新的派生类型、重新编译或者以其他方式修改原始类型&#xff09;。 扩展方法是一种特殊的静态方法&#xff0c;虽然是静态方法&a…...

uniapp 高度铺满全屏

问题&#xff1a;在有uni-tabbar的情况下&#xff0c;页面铺满剩下的部分 <template><view :style"{height:screenHeightpx}" class"page"></view> </template> <script>export default {data() {return {screenHeight: &q…...

UG\NX二次开发 判断向量在指定的公差内是否为零,判断是否是零向量 UF_VEC3_is_zero

文章作者:里海 来源网站:王牌飞行员_里海_里海NX二次开发3000例,里海BlockUI专栏,C\C++-CSDN博客 简介: UG\NX二次开发 判断向量在指定的公差内是否为零,判断是否是零向量 UF_VEC3_is_zero 效果: 代码: #include "me.hpp"void ufusr(char* param, int* retco…...

2023年MySQL实战核心技术第一篇

目录 四 . 基础架构&#xff1a;一条SQl查询语句是如何执行的&#xff1f; 4.1 MySQL逻辑架构图&#xff1a; 4.2 MySQL的Server层和存储引擎层 4.2.1 连接器 4.2.1.1 解释 4.2.1.2 MySQL 异常重启 解决方案&#xff1a; 4.2.1.2.1. 定期断开长连接&#xff1a; 4.2.1.2.2. 初始…...

hivesql执行过程

语法解析 SemanticAnalyzer SemanticAnalyzer是Hive中的语义分析器&#xff0c;负责检查Hive SQL程序的语义是否正确。SemanticAnalyzer会对Hive SQL程序进行以下检查&#xff1a; 检查过程 语法检查 SemanticAnalyzer会检查Hive SQL程序的语法是否正确&#xff0c;包括关…...

C语言学习:8、深入数据类型

数据超过类型规定的大小怎么办 C语言中&#xff0c;如果需要用的整数大于int类型的最大值了怎么办&#xff1f; 我们知道int能表示的最大数是2147483647&#xff0c;最小的数是-2147483648&#xff0c;为什么&#xff1f; 因为字32位系统中&#xff0c;寄存器是32位的&#…...

生成树协议 STP(spanning-tree protocol)

一、STP作用 1、消除环路&#xff1a;通过阻断冗余链路来消除网络中可能存在的环路。 2、链路备份&#xff1a;当活动路径发生故障时&#xff0c;激活备份链路&#xff0c;及时恢复网络连通性。 二、STP选举机制 1、目的&#xff1a;找到阻塞的端口 2、STP交换机的角色&am…...

【LeetCode】312.戳气球

题目 有 n 个气球&#xff0c;编号为0 到 n - 1&#xff0c;每个气球上都标有一个数字&#xff0c;这些数字存在数组 nums 中。 现在要求你戳破所有的气球。戳破第 i 个气球&#xff0c;你可以获得 nums[i - 1] * nums[i] * nums[i 1] 枚硬币。 这里的 i - 1 和 i 1 代表和…...

商业数据分析概论

&#x1f433; 我正在和鲸社区参加“商业数据分析训练营活动” https://www.heywhale.com/home/competition/6487de6649463ee38dbaf58b &#xff0c;以下是我的学习笔记&#xff1a; 学习主题&#xff1a;波士顿房价数据快速查看 日期&#xff1a;2023.9.4 关键概念/知识点&…...

Golang GUI框架

Golang GUI框架fyne fyne简介第一个fyne应用fyne应用程序和运行循环fyne更新GUI内容fyne窗口处理fyne解决中文乱码问题fyne应用打包fyne画布和画布对象fyne容器和布局fyne绘制和动画fyne盒子布局fyne网格grid布局fyne网格包裹布局fyne边框布局fyne表单布局fyne中心布局fyne ma…...

LeetCode刷题笔记【24】:贪心算法专题-2(买卖股票的最佳时机II、跳跃游戏、跳跃游戏II)

文章目录 前置知识122.买卖股票的最佳时机II题目描述贪心-直观写法贪心-优化代码更简洁 55. 跳跃游戏题目描述贪心-借助ability数组贪心-只用int far记录最远距离 45.跳跃游戏II题目描述回溯算法贪心算法 总结 前置知识 参考前文 参考文章&#xff1a; LeetCode刷题笔记【23】…...

游戏出现卡顿有哪些因素

一、服务器CPU内存占用过大会导致卡顿&#xff0c;升级CPU内存或者优化自身程序占用都可以解决。 二、带宽跑满导致卡&#xff0c;可以升级带宽解决。 二、平常不卡&#xff0c;有大型的活动的时候会卡&#xff0c;这方面主要是服务器性能方面不够导致的&#xff0c;性能常说…...

学习Bootstrap 5的第八天

目录 加载器 彩色加载器 实例 闪烁加载器 实例 加载器大小 实例 加载器按钮 实例 分页 分页的基本结构 实例 活动状态 实例 禁用状态 实例 分页大小 实例 分页对齐 实例 面包屑&#xff08;Breadcrumbs&#xff09; 实例 加载器 彩色加载器 在 Bootstr…...

手游刚开服就被攻击怎么办?如何防御DDoS?

开服初期是手游最脆弱的阶段&#xff0c;极易成为DDoS攻击的目标。一旦遭遇攻击&#xff0c;可能导致服务器瘫痪、玩家流失&#xff0c;甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案&#xff0c;帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...

从零实现富文本编辑器#5-编辑器选区模型的状态结构表达

先前我们总结了浏览器选区模型的交互策略&#xff0c;并且实现了基本的选区操作&#xff0c;还调研了自绘选区的实现。那么相对的&#xff0c;我们还需要设计编辑器的选区表达&#xff0c;也可以称为模型选区。编辑器中应用变更时的操作范围&#xff0c;就是以模型选区为基准来…...

抖音增长新引擎:品融电商,一站式全案代运营领跑者

抖音增长新引擎&#xff1a;品融电商&#xff0c;一站式全案代运营领跑者 在抖音这个日活超7亿的流量汪洋中&#xff0c;品牌如何破浪前行&#xff1f;自建团队成本高、效果难控&#xff1b;碎片化运营又难成合力——这正是许多企业面临的增长困局。品融电商以「抖音全案代运营…...

有限自动机到正规文法转换器v1.0

1 项目简介 这是一个功能强大的有限自动机&#xff08;Finite Automaton, FA&#xff09;到正规文法&#xff08;Regular Grammar&#xff09;转换器&#xff0c;它配备了一个直观且完整的图形用户界面&#xff0c;使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...

iOS性能调优实战:借助克魔(KeyMob)与常用工具深度洞察App瓶颈

在日常iOS开发过程中&#xff0c;性能问题往往是最令人头疼的一类Bug。尤其是在App上线前的压测阶段或是处理用户反馈的高发期&#xff0c;开发者往往需要面对卡顿、崩溃、能耗异常、日志混乱等一系列问题。这些问题表面上看似偶发&#xff0c;但背后往往隐藏着系统资源调度不当…...

Python Ovito统计金刚石结构数量

大家好,我是小马老师。 本文介绍python ovito方法统计金刚石结构的方法。 Ovito Identify diamond structure命令可以识别和统计金刚石结构,但是无法直接输出结构的变化情况。 本文使用python调用ovito包的方法,可以持续统计各步的金刚石结构,具体代码如下: from ovito…...

Python 实现 Web 静态服务器(HTTP 协议)

目录 一、在本地启动 HTTP 服务器1. Windows 下安装 node.js1&#xff09;下载安装包2&#xff09;配置环境变量3&#xff09;安装镜像4&#xff09;node.js 的常用命令 2. 安装 http-server 服务3. 使用 http-server 开启服务1&#xff09;使用 http-server2&#xff09;详解 …...

认识CMake并使用CMake构建自己的第一个项目

1.CMake的作用和优势 跨平台支持&#xff1a;CMake支持多种操作系统和编译器&#xff0c;使用同一份构建配置可以在不同的环境中使用 简化配置&#xff1a;通过CMakeLists.txt文件&#xff0c;用户可以定义项目结构、依赖项、编译选项等&#xff0c;无需手动编写复杂的构建脚本…...

JS红宝书笔记 - 3.3 变量

要定义变量&#xff0c;可以使用var操作符&#xff0c;后跟变量名 ES实现变量初始化&#xff0c;因此可以同时定义变量并设置它的值 使用var操作符定义的变量会成为包含它的函数的局部变量。 在函数内定义变量时省略var操作符&#xff0c;可以创建一个全局变量 如果需要定义…...

ArcGIS Pro+ArcGIS给你的地图加上北回归线!

今天来看ArcGIS Pro和ArcGIS中如何给制作的中国地图或者其他大范围地图加上北回归线。 我们将在ArcGIS Pro和ArcGIS中一同介绍。 1 ArcGIS Pro中设置北回归线 1、在ArcGIS Pro中初步设置好经纬格网等&#xff0c;设置经线、纬线都以10间隔显示。 2、需要插入背会归线&#xf…...