详解C语言之文件操作(上)
目录
- 什么是文件
- 程序文件
- 数据文件
- 文件名
- 文件类型
- 文件缓冲区
- 文件指针
- 文件的打开和关闭
- 输入和输出
- 总结
什么是文件
磁盘上的文件就是文件。
在程序设计中,我们一般谈的文件有两种:程序文件和数据文件
程序文件
包括源程序文件(后缀为.c),目标文件(windows环境后缀为.obj),可执行程序(windows环境后缀为.exe)。
数据文件
文件的内容不一定是程序,而是程序运行时读写的数据,比如程序运行时需要从中读取数据的文件,或者输出内容的文件。
文件名
文件名包含三部分:文件路径、文件名主干、文件名后缀
例如:c:\code\test.txt
文件类型
根据数据的组织形式,文件类型分为文本文件或者二进制文件
数据在内存中以二进制的形式存储,如果不加以转换输出到外存,就是二进制文件,如果在外存存储前转换,以ASCII字符的形式存储的文件就是文本文件
一个数据在内存中是怎么存储的呢?
字符一律以ASCII形式存储,数值型数据既可以用ASCII形式存储,也可以用二进制形式存储。
如整数10000,若以ASCII形式输出到磁盘,则占5字节(每一个字符占一个字节),而二进制形式输出则只占4个字节
文件缓冲区
ASNIC标准采用"缓冲文件系统"来处理数据文件
缓冲文件系统是指系统自动地在内存中为程序中每一个正在使用的文件开辟一块"文件缓冲区"。
从内存向磁盘中输送数据会先送到内存中的缓存区,待缓存区被装满后一起送到磁盘上。
如果从磁盘向计算机中读入数据,则从磁盘文件读取数据到内存缓冲区,待装满缓冲区后再从缓冲区逐个地将数据送到程序数据段(程序变量等)。缓冲区大小根据c编译系统决定
文件指针
每个被使用的文件都在内存里开辟了一个相应的文件信息区,用来存放文件的相关信息(如文件的名字、文件的状态、文件当前的位置等)。这些信息都是保存在一个结构体变量中的。该结构体类型是有系统声明的,取名为FILE。
指向FILE的指针称为文件指针
每当打开一个文件时,系统会根据文件的情况自动创建一个FILE结构的变量,并填充其中的信息,使用者不必关心其细节
文件的打开和关闭
文件在读写之前应打开文件,使用完成之后应关闭文件
ANSIC规定使用fopen打开文件,fclose关闭文件
FILE* fopen(const char* filename, const char* mode);
参数一为文件名,参数二为打开模式
打开成功返回文件指针,失败则返回空指针
int fclose(FILE* stream);
关闭成功返回0,失败返回EOF
文件有许多种打开方式,如图
输入和输出
打开后可进行数据的输入和输出,可用以下函数进行操作
注:以下为顺序读写函数
具体使用例
例1(附带运行结果)
例2
例3
学会文件操作后即可将之前的通讯录修改为文件版。
总结
本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注我们的更多内容!
相关推荐
-
C语言文件操作详解
目录 一.什么是文件 二.文件缓冲区 三.文件指针 四.文件的打开和关闭. 总结 一.什么是文件 在程序设计中,我们一般谈的文件有两种:程序文件.数据文件. 程序文件: 包括源程序文件(后缀为.c ),目标文件( windows环境后缀为.obj ) ,可执行程序( windows环境后缀为.exe ). 数据文件: 文件的内容不一定是程序,而是程序运行时读写的数据,比如程序运行需要从中读取数据的文件 或者输出内容的文件. 数据文件又分为"文本文件"和"二级制文件"
-
C语言文件操作的入门详解教程
一.一些需要掌握的知识点 文件有千千万万,但是在我们的程序设计当中,我们谈的文件一般有两种: 1.程序文件 包括源程序文件(后缀为.c),目标文件(windows环境后缀为.obj),可执行程序(windows环境后缀为.exe). 2.数据文件 文件的内容不一定是程序,而是程序运行时读写的数据,比如程序运行需要从中读取数据的文件,或者输出内容的文件. 而在本节中,我们主要提到的是数据文件. 1.文件名 我们知道,名字都是用来标识和区别事物的,那么文件名也是这样,是区别各个文件的标识. 一个文件
-
详解C语言之文件操作下)
目录 文件的随机读写 fseek函数 ftell函数 rewind函数 文件结束判定 feof函数和ferror函数 总结 文件的随机读写 之前的函数只能实现顺序读写,而实现随机读写需用fseek函数来定位--根据文件指针的位置和偏移量来定位文件指针 fseek函数 int fseek(FILE* stream, long int offset, int origin); 返回值:若成功返回0,则返回非0值. 参数:stream为文件指针,offset为偏移量.origin为起始位置,有三种 S
-
C语言中炫酷的文件操作实例详解
目录 什么是文件 程序文件 数据文件 (本文重点) 文件名 文件的打开和关闭 文件指针 文件函数 相对路径与绝对路径 输入输出流 二进制读写 fwirte fread 总结 什么是文件 磁盘上的文件是文件 但是在程序设计中,我们一般谈的文件有两种:程序文件和数据文件(从文件功能的角度来分类). 程序文件 包括源程序文件(例如.c文件)目标文件(windows环境后缀为.obj)可执行程序(windos环境后缀为exe). 数据文件 (本文重点) 文件的内容不一定是程序,而是程序运行时读写的数据,
-
C语言基础文件操作方式超全详解建议收藏
目录 什么是文件 文件名 文件类型 文件指针 文件的打开与关闭 打开方式 文件的顺序读写 关于fread的返回值 对比一组函数 文件随机读取 文件结束判断 perror() ferror() 什么是文件 磁盘上的文件是文件. 在程序设计中,我们一般读的文件有两种:程序文件 和 数据文件 程序文件包括源程序文件(后缀为.c).目标文件(win下后缀为 .obj).可执行文件(win下环境后缀为.exe) 数据文件:文件的内容不一定是程序,而是运行时读写的程序,比如程序运行需要从中读取数据的文件,或
-
详解C语言之文件操作(上)
目录 什么是文件 程序文件 数据文件 文件名 文件类型 文件缓冲区 文件指针 文件的打开和关闭 输入和输出 总结 什么是文件 磁盘上的文件就是文件. 在程序设计中,我们一般谈的文件有两种:程序文件和数据文件 程序文件 包括源程序文件(后缀为.c),目标文件(windows环境后缀为.obj),可执行程序(windows环境后缀为.exe). 数据文件 文件的内容不一定是程序,而是程序运行时读写的数据,比如程序运行时需要从中读取数据的文件,或者输出内容的文件. 文件名 文件名包含三部分:文件路径.
-
一文详解C语言中文件相关函数的使用
目录 一.文件和流 1.程序文件 2.数据文件 3.流 二.文件组成 三.文件的打开和关闭 1.文件的打开fopen 2.文件关闭fclose 四.文件的顺序读写 1.使用fputc和fgetc写入/读取单个字符 2.使用fputs和fgets写入/读取一串字符 3.使用fprintf和fscanf按照指定的格式写入/读取 4.使用fwrite和fread按照二进制的方式写入/读取 5.使用sprintf和sscanf将格式化数据和字符串互相转换(文件无关) 五.文件的随机读写 1.fseek(
-
详解C语言读取文件求某一列的平均值
目录 第一部分:比较读取文件的效率 第二部分:比较求取列平均值的效率 第一部分:比较读取文件的效率 在之前的文章<生信(五)awk求取某一列的平均值>中,笔者曾经给出过C语言求取某列平均值的代码,但是最近回顾时发现,这段代码至少有几点不足: 1. 利用 fgetc 函数来读取文件,现在看来效率不高. 2. 如果文件最后没有一个空白行的话,会陷入无限循环.也就是对 EOF 的处理不完善. 大家都知道,C语言读取文件的常用函数有 fgetc.fgets.fread 以及 fscanf 等.笔者曾经
-
详解Python中的文件操作
1.能调用方法的一定是对象,比如数值.字符串.列表.元组.字典,甚至文件也是对象,Python中一切皆为对象. str1 = 'hello' str2 = 'world' str3 = ' '.join([str1,str2]) print(str3) 2.三种基本的文件操作模式:r(only-read).w(only-write).a(append) 对文件进行操作的流程: 第一,建立文件对象. 第二,调用文件方法进行操作. 第三,不要忘了关闭文件.(文件不关闭的情况下,内容会放在缓存,虽然P
-
详解python中的文件与目录操作
详解python中的文件与目录操作 一 获得当前路径 1.代码1 >>>import os >>>print('Current directory is ',os.getcwd()) Current directory is D:\Python36 2.代码2 如果将上面的脚本写入到文件再运行 Current directory is E:\python\work 二 获得目录的内容 Python代码 >>> os.listdir (os.getcwd
-
详解C 语言项目中.h文件和.c文件的关系
详解C 语言项目中.h文件和.c文件的关系 在编译器只认识.c(.cpp))文件,而不知道.h是何物的年代,那时的人们写了很多的.c(.cpp)文件,渐渐地,人们发现在很多.c(.cpp)文件中的声明语句就是相同的,但他们却不得不一个字一个字地重复地将这些内容敲入每个.c(.cpp)文件.但更为恐怖的是,当其中一个声明有变更时,就需要检查所有的.c(.cpp)文件. 于是人们将重复的部分提取出来,放在一个新文件里,然后在需要的.c(.cpp)文件中敲入#include XXXX这样的语句.这样即
-
详解JavaWeb如何实现文件上传和下载功能
目录 1. 文件传输原理及介绍 2. JavaWeb文件上传 2.1我们用一个新的方式创建项目 2.2 导包 2.3 实用类介绍 2.4 pom.xml导入需要的依赖 2.5 index.jsp 2.6 info.jsp 2.7 FileServlet 2.8 配置Servlet 2.9 测试结果 3. SpringMVC文件上传和下载 3.1 上传 3.2 下载 1. 文件传输原理及介绍 2. JavaWeb文件上传 2.1我们用一个新的方式创建项目 空项目会直接弹出框 把jdk版本设置好 点
-
详解C语言fscanf函数读取文件教程及源码
目录 第一部分:问题和结论 fscanf 函数的原型是: 第二部分:实验代码 实验代码: fscanf 函数用于格式化读入文件中数据,可以大大提高读取文件的效率.这次笔者将最近使用该函数的一些经验记录下来. 第一部分:问题和结论 fscanf 函数的原型是: int fscanf(FILE* stream, const char* format, [argument...]); fscanf 函数与 scanf 函数用法类似,只不过前者用于读取文件流的数据而已.至于 fscanf 的基础用法我就
-
详解Python读取和写入操作CSV文件的方法
目录 什么是 CSV 文件? 内置 CSV 库解析 CSV 文件 读取 CSV 文件csv 将 CSV 文件读入字典csv 可选的 Python CSV reader参数 使用 csv 写入文件 从字典中写入 CSV 文件csv 使用 pandas 库解析 CSV 文件 pandas 读取 CSV 文件 pandas 写入 CSV 文件 最流行的数据交换格式之一是 CSV 格式.是需要通过键盘和控制台以外的方式将信息输入和输出的程序,通过文本文件交换信息是在程序之间共享信息的常用方法. 这里带和
随机推荐
- 健壮的AJAX源码学习应用示例
- javascript 按回车键相应按钮提交事件
- 深入理解Swift中的访问控制关键字
- ASP.net Textbox的技巧使用
- php 生成唯一id的几种解决方法
- 在Gnumeric下使用Python脚本操作表格的教程
- java多线程-同步块实例讲解
- 基于jQuery实现弹幕APP
- 把input初始值不写value的具体实现方法
- DLL+ ActiveX控件+WEB页面调用例子
- android在异步任务中关闭Cursor的代码方法
- SpringBoot应用部署到Tomcat中无法启动的解决方法
- Android实现为Notification加上一个进度条的方法
- 关于C++中菱形继承和虚继承的问题总结
- 浅谈Python使用Bottle来提供一个简单的web服务
- Android反编译程序整理详解
- MySQL8.x msi版安装教程图文详解
- Spark学习笔记之Spark中的RDD的具体使用
- Flutter中如何实现无Context跳转详解
- Flask框架WTForm表单用法示例