C文件操作
Posted 魄灆
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C文件操作相关的知识,希望对你有一定的参考价值。
注:来自https://github.com/yaouser/C
============================================================================
1.fopen是文件的打开函数。语法如下:
fp=fopen(文件名,使用文件方式)
文件名:指定磁盘文件的路径。
返回值:返回FILE类型的指针。
文件使用方式如下:
"r"(只读)"w"(只写)"a"(追加)
"rb"(只读):打开一个二进制文件,只允许度数举
"wb"(只写)"ab"(追加)"r+"(读写)"w+"(读写)
"a+" "rb+" "wb+" "ab+"
===========================================================================
2.fclose是文件的关闭函数。语法如下:
fclose(文件指针)
文件指针:FILE文件类指针。
===========================================================================
3.fgetc函数是从指定的文件读入一个字符。
ch=fgetc(fp)
ch是一个字符变量,fp是一个FILE文件指针。
===========================================================================
4.fputc函数实现把一个字符写到磁盘文件。
ch=fputc(ch,fp)
其中ch是要输出的字符,它可以是一个字符常量,也可以是一个字符变量。
fp是文件指针变量。
===========================================================================
5.fprintf函数显示将指定格式的数据写入到文件。语法如下:
ch=fprintf(文件指针,格式字符串,输出列表)
fprintf(fp,"%d",i)表示将整数变量i的值按%d的格式输出到fp指定的文件上。
===========================================================================
6.fcanf函数实现将用户输入数据按指定格式写入文件,语法如下:
fscanf(文件指针,格式字符串,输入列表)
===========================================================================
7.fwrite函数将buffer地址开始的信息输出count次,每次写size字节到fp文件中。
fwrite(buffer,size,count,fp)
buffer:是一个指针,是要输出数据的地址(起始地址)。
size:要读写的字节数。
count:要进行读写多少个size字节的数据项。
fp:文件型指针。
===========================================================================
8.fread函数是从fp所指向的文件中读入count次,每次读size字节,读入的信息存在
buffer地址中。
fread(buffer,size,count,fp)
===========================================================================
9.fseek函数用来移动文件内部位置指针。语法如下:
fseek(文件类型指针,位移量,起始点)
文件类型指针:FILE类型的文件指针。
位移量:从参数“起始点”开始移动多元的距离。
起始点:表示从何出开始计算位移量,规定的起始点有3种:文件首(SEEK——SET)
文件当前位置(SEEK——CUR)和文件尾(SEEK——END)。
===========================================================================
10.create函数生成一个新文件,如果函数执行成功,返回一个句柄给文件,如果出错,
函数返回-1,该函数在“io.h“头文件中。语法如下:
int creat(char *filename,int access)
filename:任一有效文件名。
access:用来指定访问的模式和标明该文件为二进制还是文本文件。一般情况下,
生成一个标准存档文件时access的值为0.
access取值及含义如下:
==========================================================================
11.tempfile函数实现创建一个临时文件。语法如下:
FILE *tempfile()
返回值:如果函数执行成功,它以读和写模式打开文件,返回一个文件指针。如果
出错,返回NULL。
==========================================================================
12.rewind函数实现将文件的指针重新设置到该文件的起点。语法如下:
void rewind(FILE *fp)
fp:FILE类型文件指针。
==========================================================================
13.rename函数的作用是把文件的名字从旧文件名改为新文件名。语法如下:
int rename(char *oldfname,char *newfname)
oldfname:旧文件名。
newfname:新文件名。
返回值:函数调用成功时返回0,出错时返回非零值。
==========================================================================
14.remove函数的作用是删除filename所指定的文件。
int remove(char *filename)
filename:设置所要删除文件的文件名。
返回值:删除成功返回0,出现错误返回-1。
==========================================================================
15.searchpath函数实现找出由fname所指向的文件名。该函数原型在“dir.h”头文件。
char *searchpath(char *fname)
fname:设定文件名。
返回值:如果找到文件,返回值向全路径名的指针。如果文件没有找到,返回一个
空指针。
==========================================================================
16.chdir函数实现把路径名由path所指的目录变成当前工作目录,该函数的原型包含
在“dir.h”头文件中。
int chdir(char *path)
path:文件路径。
返回值:如果成功,返回0。否则返回-1。
==========================================================================
17.findfirst函数是寻找与filename所指向的文件名相匹配的第一个文件名。语法
如下:
int findfirst(char *filename,struct ffblk *ptr,int attrib)
filename:指定要查找的文件名。
ptr:指向ffblk结构的指针。
attrib:决定findfirst函数要找的文件的类型,FA_RDOINLY表示读文件,FA_HIDDEN
表示隐含文件,FA_SYSTEM表示系统文件。
==========================================================================
18.findnext函数是移动文件列表指针到下一项,其中文件列表是由findfirst函数
查找出文件列表。语法如下:
int findnext(struct ffblk *ptr)
ptr:指向ffblk结构的指针。
==========================================================================
19.fcloseall函数实现一次关闭所有被打开的文件。该函数原型在stdio.h中。
int fcloseall(void)
返回值:如果函数执行成功,它将返回成功关闭文件的数目,如果出错,则返回
EOF常量。
==========================================================================
20.ferror函数是检测已打开文件流里的文件错误。
int ferror(FILE *stream)
stream:FILE类型文件指针。
返回值:返回值为0时,表示没有出现错误;而非零值表示有错。
==========================================================================
以上是关于C文件操作的主要内容,如果未能解决你的问题,请参考以下文章