当前位置: 首页 > 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…...

告别软路由?实测ARM架构MT7981硬路由刷OpenWrt:性能、功耗与稳定性深度对比

ARM硬路由 vs x86软路由&#xff1a;2024年高性能网络设备终极对决 在家庭与企业网络设备的选择上&#xff0c;x86架构软路由长期占据着性能王座&#xff0c;而传统硬路由则因扩展性不足被极客们视为"玩具"。但2023年MTK发布的MT7981芯片组彻底改变了这一格局——这颗…...

WPF Chart控件实战:构建高性能实时数据监控曲线

1. WPF Chart控件基础入门 第一次接触WPF Chart控件时&#xff0c;我也被它强大的功能震撼到了。这个控件就像是一个神奇的画板&#xff0c;能够将枯燥的数据变成直观的曲线图。在工业监控系统中&#xff0c;我们经常需要实时显示温度、压力等参数的变化趋势&#xff0c;这时候…...

如何利用多渠道SEO推广提高网站流量

<h2>多渠道SEO推广&#xff1a;如何提高网站流量</h2> <p>在当前竞争激烈的互联网环境中&#xff0c;网站流量是衡量网站成功与否的重要指标之一。如何利用多渠道SEO推广提高网站流量&#xff0c;成为了每一个网站运营者关注的焦点。本文将从问题分析、原因说…...

RWKV7-1.5B-g1a开源模型实战:轻量级AI助手在中小企业的落地

RWKV7-1.5B-g1a开源模型实战&#xff1a;轻量级AI助手在中小企业的落地 1. 模型简介 rwkv7-1.5B-g1a 是一个基于 RWKV-7 架构的多语言文本生成模型&#xff0c;专为中小企业设计的轻量级AI助手解决方案。这个1.5B参数的模型在保持较小体积的同时&#xff0c;提供了足够强大的…...

[双重嵌入架构]:实现高精度人脸生成的AI解决方案

[双重嵌入架构]&#xff1a;实现高精度人脸生成的AI解决方案 【免费下载链接】IP-Adapter-FaceID 项目地址: https://ai.gitcode.com/hf_mirrors/h94/IP-Adapter-FaceID 1. 技术原理&#xff1a;双重嵌入架构的创新突破 1.1 并行特征处理机制 IP-Adapter-FaceID Plus…...

AI 开发实战:技术决策为什么总失忆,决策日志可以怎么做

AI 开发实战&#xff1a;技术决策为什么总失忆&#xff0c;决策日志可以怎么做 一、这个问题为什么值得专门拿出来做&#xff1f; 在 AI 工程落地里&#xff0c;真正拖慢团队的往往不是模型本身&#xff0c;而是流程和协作方式没有跟上。 围绕“技术决策为什么总失忆&#xff0…...

提升90%效率:OpenCore EFI自动化配置工具OpCore-Simplify实战指南

提升90%效率&#xff1a;OpenCore EFI自动化配置工具OpCore-Simplify实战指南 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 副标题&#xff1a;面向…...

华为/荣耀手机鸿蒙系统安装谷歌地图、Gmail等App的保姆级教程(无需复杂框架)

华为鸿蒙手机零门槛畅玩谷歌生态&#xff1a;GBOX全攻略手册 刚入手华为Mate60系列或升级到HarmonyOS 4.0的用户&#xff0c;面对无法直接使用Google Maps、Gmail这些国际应用的困境时&#xff0c;往往陷入两难——既需要这些工具的全球服务&#xff0c;又担心第三方安装包的安…...

Debian GNU/Linux12高效运维指南(网络配置、远程管理、软件更新与安全防护)

1. Debian GNU/Linux12网络配置实战 刚接触Debian GNU/Linux12的朋友们&#xff0c;网络配置可能是你们遇到的第一个挑战。别担心&#xff0c;我会用最直白的方式带你们搞定这个环节。网络配置就像给新房子拉网线&#xff0c;得先把基础线路接好&#xff0c;后续的上网、远程控…...

3D Face HRN真实案例:用于司法鉴定中面部特征三维比对辅助系统

3D Face HRN真实案例&#xff1a;用于司法鉴定中面部特征三维比对辅助系统 1. 引言&#xff1a;从平面照片到三维证据的突破 在司法鉴定领域&#xff0c;面部特征比对一直是身份识别的重要技术手段。传统的2D照片比对方法存在角度、光照、表情等多重限制&#xff0c;往往难以…...