【C】文件操作fopen与fclose

news2024/11/27 0:48:57

目录

函数

1.fopen

2.fclose

3.freopen


函数

头文件

#include<stdio.h>

1.fopen

FILE *fopen(const char *restrict dilename,const char* restrict mode);
  • 作用:打开文件
  • 参数:
    • 第一个是含有要打开文件名的字符串("文件名"可以包含关于文件位置信息,如驱动器符或路径)。
      • 注意:在fopen函数调用文件名中含有字符'\'时,C语言有时会当作是转义字符,可以用'\\'代替'\'
    • 第二个参数是"模式字符串",用来指定打算对文件执行的操作,如下图所示:
      • 图中可以看出,对写数据和追加数据进行了区分。当给文件写数据时,通常会对先前的内容进行覆盖,追加时保留原文件内容。
      • 还有一点需要强调的是,当打开文件用于读和写时,如果没有先调用一个文件定位函数,或者没有调用fflush函数就不能从读取模式转换为写模式,除非读操作遇到了文件尾部'\n'.
  • 返回值:文件指针。程序通常把该指针存储在一个变量中,稍后早需要对文件进行操作时使用它。当无法打开文件时,会返回空指针,无法打开的原因可能是文件不存在,也可能是文件位置不对,也可能是我们没有打开文件的权限。

fopen常见调用形式为:

fp=fopen("indat","r");//fp是FILE*类型的变量

2.fclose

int fclose(FILE* stream);
  •  作用:关闭文件
  • 参数:
    • 文件指针,来自于fopen,freopen
  • 返回值:成功关闭返回0,失败返回错误码EOF

fopen常见调用形式为:

int main()
{
    FILE* fp;
    fp=fopen("indat","r");//FILE* fp=fopen(...);
    if(fp!=NULL)//if(fp=fopen(...)!=NULL)
    {
        ...
    }
    ...
    fclose(fp);
    return 0;    
}

3.freopen

FILE* fropen(const char* restrict filename,const char * restrict mode,FILE* restrict stream);

作用:为打开的流附加一个不同的文件。

常用的用法是把文件和一个标准流(stdin,stdout或sterr)相关联。例如,为了使程序开始往文件foo中写入数据,可以使用下列形式的freopen函数调用:

if(freopen("foo","w",stdout)==NULL)
{
...
}

 在关闭了先前的(通过命令行重定向或者之前的freopen函数调用)与stdout相关联的所有文件之后,freopen函数将打开foo,并将其与stdout相关联。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

肝了一周的八万字Redis实战篇

Redis实战篇 文章目录Redis实战篇开篇导读1. 短信登录2. 商户查询缓存3. 优惠卷秒杀4. 附近的商户5. UV统计6. 用户签到7. 好友关注8. 达人探店一、短信登录1. 导入黑马点评项目1.1 导入SQL1.2 有关当前模型1.3 导入后端项目1.4 导入前端工程1.5 运行前端项目2. 基于Session实现…

【杂谈】快来看看如何使用LGMT这样的蜜汁缩写来进行CodeReview吧!

文章目录一、先从一个梗开始说起吧&#xff01;二、什么是LGTM&#xff1f;2.1 LGTM 是什么意思&#xff1f;2.2 蹭梗品牌故事2.3 虚假的CodeReview三、Code Review中的蜜汁缩写四、参考链接一、先从一个梗开始说起吧&#xff01; 公司最近在如火如荼的开展CodeReview活动&…

Reinforcement learning from demonstration through shaping(Wiewiora 2003)

摘要 强化学习中的一个重要问题是如何以有原则的方式整合专家知识&#xff0c;尤其是当我们扩展到现实世界的任务时。在本文中&#xff0c;我们提出了一种在不改变最优策略的情况下将任意建议纳入强化学习agent的奖励结构的方法。 该方法将 Ng 等人 (1999) 提出的基于势能的塑…

1530_AURIX_TriCore内核架构_通用寄存器以及系统寄存器

全部学习汇总&#xff1a; GreyZhang/g_tricore_architecture: some learning note about tricore architecture. (github.com) 继续看一下内核手册&#xff0c;这次了解一下通用寄存器以及系统寄存器。最近一段时间最复位以及trap困扰了许久&#xff0c;看看这里面是否能够获取…

黄河水稻山东智慧 国稻种芯·中国水稻节:济南泉城米袋子

黄河水稻山东智慧 国稻种芯中国水稻节&#xff1a;济南泉城米袋子 新闻中国采编网 中国新闻采编网 谋定研究中国智库网 中国农民丰收节国际贸易促进会 国稻种芯中国水稻节 中国三农智库网-功能性农业农业大健康大会报道&#xff1a;又是一年春天。济南黄河流域吴家堡水稻田旁的…

数据挖掘与机器学习:数据挖掘算法原理与实践:数据预处理

目录 第一关&#xff1a;标准化 任务描述&#xff1a; 相关知识&#xff1a; 一、为什么要进行标准化 二、Z-score标准化 三、Min-max标准化 四、MaxAbs标准化 编程要求&#xff1a; 测试说明&#xff1a; 第二关&#xff1a;非线性转换 任务描述&#xff1a; 相关知…

【LeetCode】878. 第 N 个神奇数字

题目描述 一个正整数如果能被 a 或 b 整除&#xff0c;那么它是神奇的。 给定三个整数 n , a , b &#xff0c;返回第 n 个神奇的数字。因为答案可能很大&#xff0c;所以返回答案 对 109 7 取模 后的值。 示例 1&#xff1a; 输入&#xff1a;n 1, a 2, b 3 输出&#xff…

stm32cubemx hal学习记录:FreeRTOS互斥量

一、互斥量 1、互斥量用于互锁&#xff0c;可以充当资源保护的令牌&#xff0c;当一个任务希望访问某个资源时&#xff0c;它必须先获取令牌&#xff0c;当任务使用完资源后&#xff0c;必须返还令牌&#xff0c;以便其他任务可以访问该资源。 2、互斥量一般用于临界资源保护…

[附源码]计算机毕业设计JAVA教师档案管理系统

[附源码]计算机毕业设计JAVA教师档案管理系统 项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybati…

LabVIEW通信-CAN

文章目录CANcan总线特点位定位与同步标识符检验滤波报文传输类型CAN CAN属于OSI的物理层与数据链路层 can总线特点 网络各节点之间的数据通信实时性强 开发周期短 结构简单&#xff08;只有两根线与外部相连&#xff0c;内部继承了错误探测和管理模块&#xff09; 数据通信没…

Spring IOC

一、为什么要使用Spring&#xff1f; Spring 是个java企业级应用的开源开发框架。Spring主要用来开发Java应用&#xff0c;但是有些扩展是针对构建J2EE平台的web应用。Spring 框架目标是简化Java企业级应用开发&#xff0c;并通过POJO为基础的编程模型促进良好的编程习惯。 为…

RPA案例|云扩助力保险行业开启超自动化运营新阶段

近五年&#xff0c;全球平均保险深度总体呈小幅平稳下降趋势&#xff0c;2021年中国保险深度为4.15%&#xff0c;全球平均保险深度为5.96%&#xff0c;而美国、英国等发达国家的保险深度则保持在10%以上&#xff0c;中国保险深度仍然具有很大的上升空间。 为进一步拓展增量空间…

软考是什么?---2023年软考最全解析

软考是什么&#xff1f; 软考全称为&#xff1a;计算机技术与软件专业技术资格&#xff08;水平&#xff09;考试&#xff0c;发证机构为国家人力资源和社会保障部、工业和信息化部&#xff0c;简称为&#xff1a;人社部和工信部。中日韩三国互认&#xff0c;证书的含金量很高…

Navicat操作数据库与Mysql常见命令操作实战

一&#xff1a;Navicat下载与安装 官网下载链接&#xff1a;Navicat 下载完后直接安装即可 二&#xff1a;数据库的连接 1.打开Navicat软件&#xff0c;点击左上角连接按钮&#xff0c;选择mysql数据库 输入完成后双击连接名&#xff0c;连接成功后&#xff0c;小海豚变绿色 …

Advances in Graph Neural Networks笔记5:Dynamic Graph Neural Networks

诸神缄默不语-个人CSDN博文目录 本书网址&#xff1a;https://link.springer.com/book/10.1007/978-3-031-16174-2 本文是本书第五章的笔记。 懒得看了&#xff01;反正我也不是做这个的。以后要是真的去做动态图了也不是没资源找&#xff0c;这个我懒得看了&#xff0c;就写一…

CentOS 7安装Redis+Springboot整合Redis

1、虚拟环境条件&#xff1a; 已安装VMwareVMware Tools 使用的是视图界面并配置了基本开发环境&#xff0c;参照超详细VMware安装CentOs图文教程_Sq夏颜的博客-CSDN博客 2、直接把已经下载好的redis安装包拖进来&#xff0c;下载地址&#xff1a;CRUG网站 3、解压 tar -zxv…

美国fba海运清关基本流程

美国fba海运清关是美国物流运输的重要组成部分&#xff0c;准备好清关材料和正确流程是确保货物安全快速进口到美国的关键。虽然很多客户会选择双清包税的方式&#xff0c;但是当跨境电商越来越大的时候&#xff0c;双清包税的成本也会相应增加。选择自税不包清关&#xff0c;按…

react配置项目路径别名@

为什么有的项目引入路径写可以&#xff0c;自己的不行呢&#xff1f; 因为别人的项目是配置过路径别名的&#xff0c;就表示src目录&#xff0c;因此我们也需要配置一遍&#xff0c;以下是react项目示范&#xff0c;vue项目同理。 ts对指向src目录的提示是不支持的&#xff0…

Linux命令学习之原来最简单的ls命令这么复杂

ls命令的使用格式如下 ls [选项] [具体的文件] # [] 表示可选 直接在命令行输入ls将当前目录下的列出当前目录下的文件和目录。 1 2 $ls LICENSE README.md hello.c 也可以指定具体的目录和文件 1 2 3 $ls / bin dev home lib32 libx32 mnt proc run srv tmp …

Kotlin 基础学习笔记第七章——运算符重载及其他约定

如你所知&#xff0c;java在标准库中有一些与特定的类相关联的语言特性。例如&#xff0c;实现java.lang.Iterable接口的对象可以在for循环中使用&#xff1b;实现了java.lang.AutoCloseable接口的对象可以在try-with-resource语句中使用。 一、重载算术运算符 1、重载二元运算…