文件的打开和关闭

简介: 文件的打开和关闭

一、文件的打开和关闭

1.1流和标准流

1.1.1 流

       我们程序的数据需要输出到各种外部设备,也需要从外部设备获取数据,不同的外部设备的输入输出操作各不相同,为了方便程序员对各种设备进行方便的操作,我们抽象出了流的概念,我们可以把流想象成流淌着字符的河。

       C程序针对文件、画面、键盘等的数据输入输出操作都是通过流操作的。 一般情况下,我们要想向流里写数据,或者从流中读取数据,都是要打开流,然后操作。

1.1.2 标准流

       那为什么我们从键盘输入数据,向屏幕上输出数据,并没有打开流呢?

       那是因为C语言程序在启动的时候,默认打开了3个流:

• stdin - 标准输入流,在大多数的环境中从键盘输入,scanf函数就是从标准输入流中读取数据。

• stdout - 标准输出流,大多数的环境中输出至显示器界面,printf函数就是将信息输出到标准输出 流中。

• stderr - 标准错误流,大多数环境中输出到显示器界面。

       这是默认打开了这三个流,我们使用scanf、printf等函数就可以直接进行输入输出操作的。

       stdin、stdout、stderr 三个流的类型是: FILE* ,通常称为文件指针。

       C语言中,就是通过 FILE* 的文件指针来维护流的各种操作的。

1.2 文件的打开和关闭

       文件在读写之前应该先打开文件,在使用结束之后应该关闭文件。 在编写程序的时候,在打开文件的同时,都会返回一个FILE*的指针变量指向该文件,也相当于建立了指针和文件的关系。 ANSI C 规定使用 fopen 函数来打开文件, fclose 来关闭文件。

//打开文件 FILE * fopen ( const char * filename, const char * mode );
 
//关闭文件 int fclose ( FILE * stream );

mode表示文件的打开模式,下面都是文件的打开模式:

实例代码:

注意:fopen的两个参数都是用双引号

/* fopen fclose example */
#include <stdio.h>
int main()
{
  FILE* pFile;
  //打开⽂件
  pFile = fopen("myfile.txt", "w");
  //⽂件操作
  if (pFile != NULL)
  {
    fputs("fopen example", pFile);
    //关闭⽂件
    fclose(pFile);
  }
  return 0;
}

 


目录
相关文章
|
编解码 Android开发 芯片
RK3288 主板上的RT5651芯片SPK音频无声音问题解决方案
RK3288 主板上的RT5651芯片SPK音频无声音问题解决方案
1152 2
|
监控 网络协议 Unix
Linux命令-nc(端口监控、文件传输、反弹shell等)
Linux命令-nc(端口监控、文件传输、反弹shell等)
1892 0
|
4月前
|
人工智能 运维 Rust
从Cursor、Claude Code到DeepSeek-TUI:2026年五大开源AI编程助手硬核实测
本文实测Cursor、Cline、Claude Code、Aider、DeepSeek-TUI五款AI编程工具,在相同环境(M1 Mac/1500行Rust项目)下对比任务耗时、代码质量、中文支持与资源占用。聚焦工程落地:IDE派重体验,终端Agent重流程,新锐TUI重成本与中文适配。不吹不黑,只答“哪个不坑你”。
|
9月前
|
人工智能 边缘计算 移动开发
2025展厅数字人竞争力榜单发布:AI交互数字人驱动智慧展厅全面进化
AI数字人正引领数字展厅迈向智能新时代。世优科技波塔AI凭借拟人形象、实时交互、多模态融合等五大核心能力,在2025年权威榜单中领先,赋能企业、政务、文博等多元场景,实现沉浸式体验与降本增效,推动“人工智能+”战略落地,开启智慧交互新纪元。
504 1
|
机器学习/深度学习 数据采集 人工智能
企业如何利用开源能源管理系统实现节能减排
MyEMS 是一套多能源管理平台,支持电、水、气、热及新能源数据采集与高频监控,结合可视化能源流图与智能分析,助力企业识别节能机会。系统内置AI算法,实现设备智能调度、生产流程优化及分时电价策略,降低能耗与成本。同时支持碳足迹追踪与ISO标准合规,推动企业绿色转型。
316 0
企业如何利用开源能源管理系统实现节能减排
|
存储 供应链 数据可视化
Java 大视界 -- 基于 Java 的大数据可视化在企业供应链风险预警与决策支持中的应用(204)
本篇文章探讨了基于 Java 的大数据可视化技术在企业供应链风险预警与决策支持中的深度应用。文章系统介绍了从数据采集、存储、处理到可视化呈现的完整技术方案,结合供应链风险预警与决策支持的实际案例,展示了 Java 大数据技术如何助力企业实现高效、智能的供应链管理。
|
人工智能 JavaScript 开发工具
MCP详解:背景、架构与应用
模型上下文协议(MCP)是由Anthropic提出的开源标准,旨在解决大语言模型与外部数据源和工具集成的难题。作为AI领域的“USB-C接口”,MCP通过标准化、双向通信通道连接模型与外部服务,支持资源访问、工具调用及提示模板交互。其架构基于客户端-服务器模型,提供Python、TypeScript等多语言SDK,方便开发者快速构建服务。MCP已广泛应用于文件系统、数据库、网页浏览等领域,并被阿里云百炼平台引入,助力快速搭建智能助手。未来,MCP有望成为连接大模型与现实世界的通用标准,推动AI生态繁荣发展。
10435 66
RT-DETR改进策略【模型轻量化】| 替换骨干网络为 GhostNet V3 2024华为的重参数轻量化模型
RT-DETR改进策略【模型轻量化】| 替换骨干网络为 GhostNet V3 2024华为的重参数轻量化模型
680 2
RT-DETR改进策略【模型轻量化】| 替换骨干网络为 GhostNet V3 2024华为的重参数轻量化模型
|
机器学习/深度学习 计算机视觉
YOLOv11改进策略【注意力机制篇】| EMA注意力 即插即用模块,提高远距离建模依赖
YOLOv11改进策略【注意力机制篇】| EMA注意力 即插即用模块,提高远距离建模依赖
1065 1
YOLOv11改进策略【注意力机制篇】| EMA注意力 即插即用模块,提高远距离建模依赖
|
人工智能 搜索推荐 程序员
从产品经理视角深度解析五款热门AI产品:洞察创新与用户价值
本文从产品经理视角深度解析五款热门AI产品,包括ChatGPT、Midjourney、Notion AI、Perplexity与GitHub Copilot,剖析其成功要素与不足,总结AI产品设计的核心方法论,如用户体验优先、场景化落地、信任机制构建等,为AI时代的产品创新提供实践启示。
1121 0

热门文章

最新文章