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 fread(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);

无条件地把缓冲区的所有数据写入物理设备

时间: 2024-08-08 06:05:47

C语言文件操作的相关文章

C语言文件操作函数的编写

 编写文件操作的头文件 /************************************************************************** Copyright(C)    :2014-08-5 toto Filename       :file.h Author          :涂作权 Version         :V1.1 Date            :2014-08-05 Description     :文件操作的头文件 Others  

C 语言文件操作

1. 数据流:     程序与数据的交互以流的形式进行.fopen 即打开数据流,fclose 即刷新数据流.     所谓数据流,是一种抽象,表示这段数据像流一样,需要逐步接收,不能随机存取:也意味着是一段连续的内容,每块数据之间的顺序是确定的.比如一个很大的文件,不能一次性加载到内存里面,无法直接获取文件任意位置的内容,只能逐渐加载到内存.     比如 TCP 被抽象为 stream 而 UDP 被抽象为 block.     2. 缓冲区:     fopen 时, 磁盘 --> 缓冲区

c语言文件操作函数

c语言文件操作函数大全 fopen(打开文件) 相关函数 open,fclose 表头文件 #include<stdio.h> 定义函数 FILE * fopen(const char * path,const char * mode); 函数说明 参数path字符串包含欲打开的文件路径及文件名,参数mode字符串则代表着流形态. mode有下列几种形态字符串: r 打开只读文件,该文件必须存在. r+ 打开可读写的文件,该文件必须存在. w 打开只写文件,若文件存在则文件长度清为0,即该文件

go语言文件操作,这期资料比较详细( 欢迎加入go语言群: 218160862 )

go语言文件操作,这期资料比较详细 欢迎加入go语言群: go语言深圳群 golang深圳 218160862 文件操作 func Open(name string) (file *File, err error),*File 是实现了 io.Reader这个接口byte[] 转化为 bytes.Buffer:bytes.NewBuffer([]byte). 一.建立与打开 建立文件函数:func Create(name string) (file *File, err Error)func N

C语言文件操作(一)

实例1:读写字符文件,每次读取一个字符. #include<stdio.h> #include <stdlib.h> int main() { FILE *fpin ; FILE *fpout; char c; fpout=fopen("c:\\dest.txt","wt"); if((fpin=fopen("c:\\test.txt","rt"))!=NULL) { c = fgetc(fpin);

C语言文件操作(二)

实例2:读取字符文件,每次读入一个缓存里面. #include<stdio.h> #include <stdlib.h> #define MAXLEN 1024 int main() { FILE *fin; FILE *fout=fopen("c:\\dest.txt","wt"); char buf[MAXLEN]; if((fin=fopen("c:\\test.txt","rt"))!=NULL

C语言文件操作(三)

实例3:读写字节文件,每次读入一个缓存里面. #include<stdio.h> #include <stdlib.h> #define MAXLEN 1024 int main() { FILE *fpin ; FILE *fpout; unsigned char buf[MAXLEN]; int c; fpout=fopen("c:\\dest.jpg","wb"); if((fpin=fopen("c:\\test.jpg&q

C语言文件操作(四)

实例四:随机读写.在C:\\TEST.TXT 文件中创建如下字符串:我爱你,中国 使用随机读写,输出"中国"两个字,以为中文字符占两个字节,所以要从文件首部向后偏移7个字节,逗号是英文字符,占用一个字节. #include<stdio.h> #include <stdlib.h> int main() { FILE *fp ; char c; if((fp=fopen("c:\\test.txt","rb"))!=NULL

C语言文件操作函数大全(超详细)

C语言文件操作函数大全(超详细) 作者: 字体:[增加 减小] 类型:转载 本篇文章是对C语言中的文件操作函数进行了详细的总结分析,需要的朋友参考下 fopen(打开文件)相关函数 open,fclose表头文件 #include<stdio.h>定义函数 FILE * fopen(const char * path,const char * mode);函数说明 参数path字符串包含欲打开的文件路径及文件名,参数mode字符串则代表着流形态.mode有下列几种形态字符串:r 打开只读文件,

C语言 文件操作API介绍

文件的基本概念 所谓“文件”是指一组相关数据的有序集合. 这个数据集有一个名称,叫做文件名. 实际上在前面的各章中我们已经多次使用了文件,例如源程序文件.目标文件.可执行文件.库文件 (头文件)等.文件通常是驻留在外部介质(如磁盘等)上的, 在使用时才调入内存中来.从不同的角度可对文件作不同的分类.从用户的角度看,文件可分为普通文件和设备文件两种. 普通文件是指驻留在磁盘或其它外部介质上的一个有序数据集,可以是源文件.目标文件.可执行程序:也可以是一组待输入处理的原始数据,或者是一组输出的结果.