标准C的fopen详细使用

C标准库核心函数源码包:printf、scanf、fopen等底层实现全收录 整理了C语言标准库中关键函数的原始实现代码,包括格式化输出printf、输入解析scanf、文件打开fopen、浮点转字符串fcvt、文件描述符复制dup2、时钟获取clock、宽字符创建wcreat等。所有源文件统一采用大写命名加.C后缀(如PRINTF.C、SCANF.C),结构清晰,便于逐个阅读和分析。配套提供PLSTRING.H、STDEXCPT.H、OSCALLS.H、XLOCINFO等头文件,支撑函数运行所需的类型定义、异常处理、系统调用封装及本地化信息管理。部分文件含CPP扩展名(如NEWOP 阅读详情
格式:文件指针名=fopen(文件名,使用文件方式)

参数:
文件名 意义
"C://TC//qwe.txt" 文件C:/TC/qwe.txt
"qwe.txt" 和程序在同一目录下的qwe.txt

文件使用方式   意 义
“rt”      只读打开一个文本文件,只允许读数据
“wt”      只写打开或建立一个文本文件,只允许写数据
“at”      追加打开一个文本文件,并在文件末尾写数据
“rb”      只读打开一个二进制文件,只允许读数据
“wb”       只写打开或建立一个二进制文件,只允许写数据
“ab”       追加打开一个二进制文件,并在文件末尾写数据
“rt+”      读写打开一个文本文件,允许读和写
“wt+”      读写打开或建立一个文本文件,允许读写
“at+”     读写打开一个文本文件,允许读,或在文件末追加数据
“rb+”      读写打开一个二进制文件,允许读和写
“wb+”      读写打开或建立一个二进制文件,允许读和写
“ab+”      读写打开一个二进制文件,允许读,或在文件末追加数据

对于文件使用方式有以下几点说明:

  1. 文件使用方式由r,w,a,t,b,+六个字符拼成,各字符的含义是:

  r(read): 读
  w(write): 写
  a(append): 追加
  t(text): 文本文件,可省略不写
  b(banary): 二进制文件
  +: 读和写

  2. 凡用“r”打开一个文件时,该文件必须已经存在,且只能从该文件读出。

  3. 用“w”打开的文件只能向该文件写入。若打开的文件不存在,则以指定的文件名建立该文件,若打开的文件已经存在,则将该文件删去,重建一个新文件。

  4. 若要向一个已存在的文件追加新的信息,只能用“a ”方式打开文件。但此时该文件必须是存在的,否则将会出错。

  5. 在打开一个文件时,如果出错,fopen将返回一个空指针值NULL。在程序中可以用这一信息来判别是否完成打开文件的工作,并作相应的处理。
 
如果成功的打开一个文件, fopen()函数返回文件指针, 否则返回空指针
(NULL)。由此可判断文件打开是否成功。
fwrite(将数据写至文件流)  
相关函数  fopen,fread,fseek,fscanf
 
表头文件  #include<stdio.h>
 
定义函数  size_t fwrite(const void * ptr,size_t size,size_t nmemb,FILE * stream);
 
函数说明  fwrite()用来将数据写入文件流中。参数stream为已打开的文件指针,参数ptr 指向欲写入的数据地址,总共写入的字符数以参数size*nmemb来决定。Fwrite()会返回实际写入的nmemb数目。
 
返回值  返回实际写入的nmemb数目。
 
范例  #include<stdio.h>
#define set_s (x,y) {strcoy(s[x].name,y);s[x].size=strlen(y);}
#define nmemb 3
struct test
{
char name[20];
int size;
}s[nmemb];
main()
{
FILE * stream;
set_s(0,”Linux!”);
set_s(1,”FreeBSD!”);
set_s(2,”Windows2000.”);
stream=fopen(“/tmp/fwrite”,”w”);
fwrite(s,sizeof(struct test),nmemb,stream);
fclose(stream);
}
 
执行  参考fread()。 


fread(从文件流读取数据)  
相关函数  fopen,fwrite,fseek,fscanf
 
表头文件  #include<stdio.h>
 
定义函数  size_t fread(void * ptr,size_t size,size_t nmemb,FILE * stream);
 
函数说明  fread()用来从文件流中读取数据。参数stream为已打开的文件指针,参数ptr 指向欲存放读取进来的数据空间,读取的字符数以参数size*nmemb来决定。Fread()会返回实际读取到的nmemb数目,如果此值比参数nmemb 来得小,则代表可能读到了文件尾或有错误发生,这时必须用feof()或ferror()来决定发生什么情况。
 
返回值  返回实际读取到的nmemb数目。
 
附加说明  
 
范例  #include<stdio.h>
#define nmemb 3
struct test
{
char name[20];
int size;
}s[nmemb];
main()
{
FILE * stream;
int i;
stream = fopen(“/tmp/fwrite”,”r”);
fread(s,sizeof(struct test),nmemb,stream);
fclose(stream);
for(i=0;i<nmemb;i++)
printf(“name[%d]=%-20s:size[%d]=%d/n”,i,s[i].name,i,s[i].size);
}
 
执行  name[0]=Linux! size[0]=6
name[1]=FreeBSD! size[1]=8
name[2]=Windows2000 size[2]=11 
来自http://zhidao.baidu.com/question/1064864.html
c语言中如何修改文件中间的几个字节 fopen的打开模式 在C语言中文件打开方式有这么几种: r 以只读方式打开文件,只能读不能写,往文件中写是没有任何效果的 r+ 可以读,也可以写,文件打开的时候,指向文件开头,可以通过seek改变读写位置 w 这种方式打开的文件句柄,只能写,如果文件存在则将长度清零,否则新建文件,这种句柄通过seek之后,seek位置之前的文件数据全部变成0x00 w+ 同w选项,只不过多了一个可读功能 a 这种方式打开的文件,可以写,但是位置在文件末尾,即使往回seek也没有用,数据还是从文件末尾开始附加 a+ 同a选项,多了可读的功能 另外还有2个选项,可以与上面的6个选项复合使用,一个是t表示以文本的 立即下载

相关推荐

基于STM32的工业I/O模块硬件电路实现

深入解析基于STM32的工业I/O模块硬件电路实现,涵盖关键电路设计与信号处理,突出硬件电路稳定性和工业级可靠性,适合嵌入式开发者参考。

weixin_35835018的博客 455

fopen参数说明

 fopen参数说明 格式:文件指针名=fopen(文件名,使用文件方式)参数:文件名 意义"C://TC//qwe.txt" 文件C:/TC/qwe.txt"qwe.txt" 和程序在同一目录下的qwe.txt文件使用方式   意 义“rt”      只读打开一个文本文件,只允许读数据“wt”      只写打开或建立一个文本文件,只允许写数据“at”      追加打开一

wxiaozhe的专栏 2996

Centos 7 Linux 离线安装单机 Kafka:下载、安装、配置、使用

本文详细介绍了在 CentOS 7 系统上离线安装单机版 Apache Kafka 的完整流程,包括环境准备(JDK 安装)、Kafka 安装包上传与解压、关键配置修改(如监听地址)、ZooKeeper 与 Kafka 服务的启动,以及 Topic 的创建、消息的生产和消费等基础操作。适用于无网络环境下的 Kafka 快速部署与学习,为后续开发或测试提供本地消息队列支持。

寒水馨 · 轻量级技术文档 · hanshuixin.org 1319

C语言 文件操作6--文件打开方式详解

fopen文件打开模式 r代表read的简写,+代表可读可写,w代表write,b代表bit二进制位,t代表text r 打开只读文件,该文件必须存在r+ 打开可读可写的文件,该文件必须存在(这里的写文件是指将之前的文件覆盖rt 打开只读文本文件,该文本必须存在rt+ 读写打开一个文本文件,允许读和写,该文件必须存在(这里的写文件是指将之前的文件覆盖rb 只读打开一个二进制文件,,该文本必须存...

weixin_33863087的博客 924

华为自研 ERP、Oracle EBS 与 SAP 上线时系统配置思路设计差异深度分析

本文对比分析了华为自研ERP、Oracle EBS和SAP S/4HANA三大ERP系统在上线配置思路上的核心差异。从架构设计看,华为采用分布式微服务架构,SAP采用分层服务架构,Oracle采用集中式一体化架构;在模块配置上,华为以业务场景为导向,SAP基于行业模板,Oracle强调模块独立性;数据迁移方面,华为侧重业务规则清洗,SAP注重数据质量监控,Oracle依赖标准化工具;流程适配上,华为系统随流程调整,SAP在框架内优化,Oracle需定制开发;定制开发模式差异明显,华为采用插件化扩展,SAP使

金牌架构师 1454

57、各向异性材料力学问题的分析与求解

本文系统分析了各向异性材料在扭转和平面变形问题中的力学行为,介绍了基于应力和位移的求解方法,包括应力函数推导、位移场假设、艾里应力函数法等。通过具体示例,如椭圆截面杆的扭转和各向异性板的均匀拉伸,展示了求解过程,并讨论了各向异性材料在工程应用中的意义及未来研究方向。

7h6j5k4l3的博客 204

c语言文件操作 fopen、fwrite、fread、fclose、fgets、fputs

5. 在打开一个文件时,如果出错,fopen将返回一个空指针值NULL。如果成功的打开一个文件, fopen()函数返回文件指针, 否则返回空指针。3. 用“w”打开的文件只能向该文件写入。若打开的文件不存在,则以指定的文件名建立该文件,若打开的文件已经存在,则将该文件删去,重建一个新文件。如果文件名称与已存在的文件相同,则会删除已有文件的内容,文件被视为一个新的空文件。4. 若要向一个文件追加新的信息,用“a ”方式打开文件。2. 凡用“r”打开一个文件时,该文件必须已经存在,且只能从该文件读出。

weixin_42936764的博客 1790

用C#+Avalonia写跨平台串口工具:Windows/macOS/Linux通吃,还能解析Modbus+画实时曲线

不管是串口还是蓝牙,核心操作都是“打开连接、发数据、收数据、关连接”,先定义一个// 通信设备接口:统一串口/蓝牙的操作// 连接状态变化事件(UI层订阅)// 接收数据事件(收到数据后触发)// 通信配置(不同设备配置不同,用泛型)// 通信设备接口:统一串口/蓝牙的操作 public interface ICommDevice : IDisposable {// 连接状态变化事件(UI层订阅) event Action < bool > OnConnectionChanged;

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 997

【文件操作】fopen() 参数解析

文件打开方式: 1、“r” 打开一个用于读取的文本文件 2、“w” 创建一个用于写入的文本文件 3、“a” 附加到一个文本文件 4、“rb” 打开一个用于读取的二进制文件 5、“wb” 创建一个用于写入的二进制文件 6、“ab” 附加到一个二进制文件 7、“r+” 打开一个用于读/写的文本文件 8、“w+” 创建一个用于读/写的文本文件 9、“a+” 打开一个用于读/写的文本文件 10、“rt” 只读打开一个文本文件,只允许读数据 11、“wt” 只写打开或建立一个文本文件,只允许写数

helanzhiying的博客 2881

汽车UDS诊断详解及Vector相关工具链使用说明——总述

1.什么是诊断 车辆在运行过程中,不可避免地会发生一些故障,为了确保行车安全,我们要求车上的ECU能够实时监测部件的运行状态,一旦发现异常情况,能通过点亮报警灯等方式提示驾驶员。但是,点亮报警灯只能告诉驾驶员车辆发生了故障,最多只能定位到故障ECU,比如ABS报警灯亮说明ABS系统出现故障,但具体是什么部件发生故障并不能通过报警灯显示出来。这时就需要ECU在本地存储一个与故障相对应的故障代码,在进行维修的时候,可以通过车上的OBD接口连接诊断仪,把这个存储的故障代码读取出来,从而进一步定位到更加具体的故障部

weixin_42967006的博客 2万+

【GameFramework框架内置模块】8、文件系统(File System)

最近好忙,鸽了好久。不能颓废了,继续发力。今天分享的是GF框架的文件系统。首先,引用比较官方的说法:GF的FileSystem虚拟文件系统,使用类似磁盘存储的感念对零散的文件进行集中管理,优化资源加载时产生的内存分配,也可以对资源进行局部片段加载,极大的提升了资源加载的性能。通俗点讲就是,我这个模块就是加载磁盘文件的,优化加载时产生的内存分配。那么,它是怎么优化的呢?

优快云博客专家,Unity3D高级软件工程师,《Unity 3D从入门到实战》作者。 2452

C标准库读写文件:fopen

中的文件操作 API,用于打开、读取、写入和关闭文件。这些函数为文件操作提供了简单的接口。函数:从文件中读取一行,存储到指定的缓冲区中。结构的指针,这个指针用于后续的文件操作。返回值是成功读取的项数。:用于关闭文件并释放与文件相关的资源。: 每个数据项的大小,以字节为单位。函数:用于移动文件指针到指定位置。,则可能遇到文件结尾或发生了错误。函数:打开文件,返回一个指向。: 指向存储读取数据的缓冲区。函数:将数据写入到文件。: 指向已打开的文件的。: 指向已打开的文件的。: 指向要关闭的文件的。

shenfenxihuan的博客 1224

【Basis】Lumerical licence center 无法连接的问题

端口,我们需要确认该端口是否被其他程序占用。这里我们将介绍如何处理这一问题。后,今天电脑更新后我无法打开。终结占用该端口的程序后再次打开。

u011699626的博客 314

C语言fopen自动创建文件,C语言:标准IO_fopen( )、fclose() ①

思前想后一个月,我终于敲下了我的第一篇开山之作。博客千千万,我的博客首先记录的是学习时候的理解,用于给自己翻阅查找,现在主要研究的是C语言和STM32。如果能帮到你,那是最好的,假如我写的东西有错误欢迎指正,所以请反复对比,仅作参考。其次,这里不仅记录学习,也会写下我在朋友圈不能公开的想法和秘密!马上进入主题一、什么是文件?我相信,就算接触过C语言的文件输入输出的人,还会回答:文件不就是鼠标点击的...

weixin_39631632的博客 3524

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

学习笔记——标准C函数fopen、fwrite、fread、fseek、fclose

前言 上一节:学习笔记——Linux的open、write、read、lseek、close函数 上一节学习了Linux的open、write、read、lseek、close函数,那么标准C函数fopen、fwrite、fread、fseek、fclose和他们有什么不同呢?该怎么用呢? 区别可以看看这里学习笔记——open和标准c库fopen的区别 下面我们用一个demo演示一下,其实和open等差别不大,参数有点变动。 fopen函数 fopen功能是打开文件。 #include <stdi

打不倒的程序猿 913

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

【C标准库】详解fopen函数 一篇让你搞懂fopen函数

详细讲解fopen函数,以及日常中我们基本使用的文件打开方式

墨辰JC的博客 1万+

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Linux系统调用函数open()、标准C库函数fopen()函数讲解以及它们之间的使用区别

open() 是 Linux 系统调用,用于打开或创建文件。它返回一个文件描述符,用于后续的文件操作。open() 提供了底层的、无缓冲的 I/O,直接与操作系统内核交互。fopen() 是标准 C 库函数,也用于打开或创建文件。它返回一个 FILE * 指针,用于后续的文件操作。fopen() 提供了更高级别的接口,包括缓冲和文件位置管理。由于 fopen() 是库函数,所以它在所有支持 C 标准库的系统上都可用。

weixin_49503250的博客 5456

windows c语言 fopen串口,串口编程 - 基于C标准库

简介操作系统:WIN7开发IDE:CodeLite V3.0.5041编译器:GNU GCC V4.5.2代码/***********************************************************************//*** @file main.c* @brief Serial Port programming, using C...

weixin_35972359的博客 854

C语言:标准IO_fopen( )、fclose() ①

思前想后一个月,我终于敲下了我的第一篇开山之作。 博客千千万,我的博客首先记录的是学习时候的理解,用于给自己翻阅查找,现在主要研究的是C语言和STM32。如果能帮到你,那是最好的,假如我写的东西有错误欢迎指正,所以请反复对比,仅作参考。其次,这里不仅记录学习,也会写下我在朋友圈不能公开的想法和秘密! 马上进入主题 一、什么是文件?   我相信,就算接触过C语言的文件输入输出的...

aofu9487的博客 338

标准c库的fopen函数

在文件 I/O 中,使用 open()系统调用打开或创建文件,而在标准 I/O 中,我们将使用库函数 fopen()打开或创建文件,fopen()函数原型如下所示: #include <stdio.h> FILE *fopen(const char *path, const char *mode); 使用该函数需要包含头文件 stdio.h。 函数参数和返回值含义如下: path:参数 path 指向文件路径...

qq_45761493的博客 1353

学习笔记——open和标准c库fopen的区别

前言 open 和fopen 长得相似,用起来也比较相似(调用),那么到底有什么区别呢?在刚开始学习的时候,总有困惑,今天来捋一捋 捋之前先介绍下buffer缓冲这个东西。 buffer分为用户态和内核。 用户进程缓冲区: 一些程序在读取文件时,会先申请一块内存数组,称为buffer,然后每次调用read,读取设定字节长度的数据,写入buffer。(用较小的次数填满buffer)。之后的程序都是从buffer中获取数据,当buffer使用完后,在进行下一次调用,填充buffer。【缓冲区就可以理解为

打不倒的程序猿 619

Linux系统编程4--标准c库对文件的操作(fopen、fread、fwrite、fseek、fclose、fputc、fgetc、feof)

本文详细的讲解并利用程序举例了Linux系统编程-->标准c库对文件的操作,其中包括open和fopen的区别和联系,fwrite、fseek、fread、fclose、feof、fgetc/fgets、fputc/fputs 等函数。

Super_Fisher_man的博客 1166

使用fopen等标准C库来操作文件

对于读read,同样返回值大部分情况下跟随nmemb的值,除了:当给出的读取缓存区已经已经读满了或者已经没东西可读了,那么就不会再读了,并且返回已经读的基本单元个数。

mjmmm的博客 1488

【C/C++】freopen与fopen实战指南:从标准流重定向到文件交互编程

本文深入探讨了C/C++中freopen与fopen的核心差异及实战应用。freopen适用于标准流重定向,特别适合算法竞赛和日志记录;而fopen则提供更精细的文件控制,适合多文件处理和二进制操作。文章通过代码示例详细展示了两种方法的最佳实践和常见陷阱,帮助开发者根据场景选择合适方案。

weixin_30861797的博客 557

linux文件编程(4)—— 用ANSIC标准C库函数进行文件编程:fopen、fread、fwrite、fseek

fopen fread fwrite fseek 文件的简单读写示例 fputs,fputc,fgetc,fgets,feof

zhuguanlin121的博客 662
上一篇: 将整型数转换成字符串
下一篇: __FILE__,__LINE__,FUNCTION__的宏
Coding人生
博客等级 码龄20年 37粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值