【C】文件操作
文件操作
文件的打开
FILE * fopen(const char filename,const char * mode);
文件的打开操作 fopen 打开一个文件
(几种操作文件的组合)
文件的关闭操作
int fclose(FILE *fp);
fclose 关闭一个文件
文件的读写操作
读取单个字符
fgetc 从文件中读取一个字符 int fgetc(FILE * fp);
fputc 写一个字符到文件中去 int fput(int c,FILE * fp);
读取字符串
fgets 从文件中读取一个字符串 char * fgets(char * s,int n,FILE *fp);
从文件中读取字符串并在字符串末尾添加'\0',然后存入s,最多读入n-1个字符
当读到换行符、到达文件末尾或者读满n-1个字符,函数返回该字符串的首地址
读取失败返回空指针NULL
因为出错和到达文件末尾都返回NULL,因此应该使用feof()和ferror()来确定函
数fget()返回NULL的实际原因
fgets()从指定的流读字符串,读到换行符时将换行符也作为字符串的一部分读到
字符串中来
fputs 写一个字符串到文件中去 int fputs(const char * s,FILE *fp);
出现写入错误返回EOF,否则返回一个非负数
fputs()不会在写入文件的字符串末尾加上换行符
按格式读写文件
fprintf 往文件中写格式化数据 int fprintf(FILE * fp,const char * format,...)
第一个参数为文件指针,第二个参数是格式控制参数,第三个是输出参数列表
fscanf 格式化读取文件中数据 int fscanf(FILE * fp,const char * format,...)
第一个参数为文件指针,第二个参数是格式控制参数,第三个是地址参数列表
按格式读写文件需要知道输出和地址参数,比较麻烦(个人认为)
按数据块读写文件
fread 以二进制形式读取文件中的数据
unsigned int fread(void * buffer,unsigned int size,unsigned int count,FILE * fp)
从fp所指的文件中读取数据并存储到buffer所指向的内存中
buffer待读入数据块的起始地址
size每个数据块的大小(待读入每个数据块的字节数)
count最多允许读取数据块的个数
函数返回的是实际读到的数据块个数
fwrite 以二进制形式写数据到文件中去
unsigned int fwrite(void * buffer,unsigned int size,unsigned int count,FILE * fp)
buffer待输出数据块的起始地址
size每个数据块的大小(待读入每个数据块的字节数)
count最多允许读取数据块的个数
函数返回的是实际读到的数据块个数
这两个函数常于二进制文件的输入和输出
getw 以二进制形式读取一个整数
putw 以二进制形式存贮一个整数
文件状态检查函数
feof 文件结束 int feof(FILE * fp);
ferror 文件读/写出错 int ferror(FILE *fp);
文件出现错误函数返回非0值,否则,函数返回0
clearerr 清除文件错误标志
ftell 了解文件指针的当前位置 long tell(FILE * fp);
成功返回文件当前读写位置,否则返回-1L
文件定位函数
rewind 反绕重置位置指针到文件首部 void rewind(FILE * fp);
fseek 随机定位 int fseek(FILE *fp,long offset,int fromwhere);
功能:将fp的文件位置指针从fromwhere开始移动offset个字节指示下一个要读取的位置
offset(偏移量)为正向后移动 为负向前移动 要求为长整型数据(常量数据后面要加L)
fromwhere有三种取值:SEEK_SET/0表示文件来时处 SEEK_CUR/1表示文件当前位置 SEEK_END/2表示文件结尾处
补充:
int fflush(FILE * fp);
无条件地把缓冲区的所有数据写入物理设备
【C】文件操作的更多相关文章
- 【.NET深呼吸】Zip文件操作(1):创建和读取zip文档
.net的IO操作支持对zip文件的创建.读写和更新.使用起来也比较简单,.net的一向作风,东西都准备好了,至于如何使用,请看着办. 要对zip文件进行操作,主要用到以下三个类: 1.ZipFile ...
- 野路子出身PowerShell 文件操作实用功能
本文出处:http://www.cnblogs.com/wy123/p/6129498.html 因工作需要,处理一批文件,本想写C#来处理的,后来想想这个是PowerShell的天职,索性就网上各种 ...
- Node基础篇(文件操作)
文件操作 相关模块 Node内核提供了很多与文件操作相关的模块,每个模块都提供了一些最基本的操作API,在NPM中也有社区提供的功能包 fs: 基础的文件操作 API path: 提供和路径相关的操作 ...
- 归档NSKeyedArchiver解归档NSKeyedUnarchiver与文件管理类NSFileManager (文件操作)
========================== 文件操作 ========================== 一.归档NSKeyedArchiver 1.第一种方式:存储一种数据. // 归档 ...
- SQL Server附加数据库报错:无法打开物理文件,操作系统错误5
问题描述: 附加数据时,提示无法打开物理文件,操作系统错误5.如下图: 问题原因:可能是文件访问权限方面的问题. 解决方案:找到数据库的mdf和ldf文件,赋予权限即可.如下图: 找到mdf ...
- 通过cmd完成FTP上传文件操作
一直使用 FileZilla 这个工具进行相关的 FTP 操作,而在某一次版本升级之后,发现不太好用了,连接老是掉,再后来完全连接不上去. 改用了一段时间的 Web 版的 FTP 工具,后来那个页面也 ...
- Linux文件操作的主要接口API及相关细节
操作系统API: 1.API是一些函数,这些函数是由linux系统提供支持的,由应用层程序来使用,应用层程序通过调用API来调用操作系统中的各种功能,来干活 文件操作的一般步骤: 1.在linux系统 ...
- C语言的fopen函数(文件操作/读写)
头文件:#include <stdio.h> fopen()是一个常用的函数,用来以指定的方式打开文件,其原型为: FILE * fopen(const char * path, c ...
- Python的文件操作
文件操作,顾名思义,就是对磁盘上已经存在的文件进行各种操作,文本文件就是读和写. 1. 文件的操作流程 (1)打开文件,得到文件句柄并赋值给一个变量 (2)通过句柄对文件进行操作 (3)关闭文件 现有 ...
- python 文件操作(转)
python中对文件.文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块. 得到当前工作目录,即当前Python脚本工作的目录路径: os.getcwd() 返回指定目录下的所有文件和目 ...
随机推荐
- pixi小游戏开发(vue+typescript)
一直以来都觉得typescript是以后前端发展的趋势,一些大厂的前端项目都已经在用ts来替代js了. 正好最近刚开始准备用pixi写个小游戏,因为刚开工没多久,于是今天就将之前的功能用ts去实现了一 ...
- Kubernetes-kubectl The connection to the server localhost:8080 was refused -did you specify
今天在Kubernetes的从节点上运行命令[kubectl]出现了如下错误: [root@k8snode1 kubernetes]# kubectl get pod The connection t ...
- vue弹窗后如何禁止滚动条滚动?
原文地址 常见场景 在许多填写表单的页面中,都会弹出一个选择器,让你在弹窗中选择项目.有时,弹窗本身容纳不下内容,需要让它不断滚动来展示,但因为事件是冒泡的,有时就会造成底部(body 的Z-inde ...
- STS中AOP的实现
1. 在pom.xml中加入aop依赖: <groupId>org.springframework.boot</groupId> <artifactId>sprin ...
- ASP.NET Core 入门笔记4,ASP.NET Core MVC路由入门
敲了一部分,懒得全部敲完,直接复制大佬的博客了,如有侵权,请通知我尽快删除修改 摘抄自https://www.cnblogs.com/ken-io/p/aspnet-core-tutorial-mvc ...
- Codeforces Round #586 (Div. 1 + Div. 2) D.Alex and Julian 简单证明
题意:在序列中删除最少元素使得得到的图是二分图. 其中点是整数域的点. 比如b1=2 那么a可以连b当且仅当|a-b|=2 同时这里的a,b是任意整数. 怎样判定一个序列是否合法呢?于是想到了二分 ...
- C++常用数据类型和Windows常见数据类型
一.C++基本的内置类型 C++ 为程序员提供了种类丰富的内置数据类型和用户自定义的数据类型.下表列出了七种基本的 C++ 数据类型: 类型 关键字 布尔型 bool 字符型 char 整型 int ...
- CSS float和position属性
1. 浮动 CSS float属性定义了元素在水平方向的浮动.该元素从网页的正常流动(文档流)中移除,对于浮动元素后的块级元素,块级元素将会被浮动元素覆盖,并且会接着其上一个文档流中的元素,按文档流的 ...
- Python验证数据的抽样分布类型
假如要对一份统计数据进行分析,一般其来源来自于社会调研/普查,所以数据不是总体而是一定程度的抽样.对于抽样数据的分析,就可以结合上篇统计量及其抽样分布的内容,判断数据符合哪种分布.使用已知分布特性,可 ...
- poj 2226 Muddy Fields (二分图)
大意:给定n*m网格, 每个格子为泥地或草地, 可以用一些长度任意宽度为1的木板盖住泥地, 要求不能盖到草地, 求最少要多少块木板能盖住所有泥地. 最小点覆盖板子题, 建图跑最大匹配即可. #incl ...