C语言标准I/O可以理解为一类特殊的文件,所以对文件的操作很多都与标准I/O相似。
文件操作类函数的头文件引用为<stdio.h>。
经常用的函数有以下几种:
1. 打开及关闭
fopen(char *pFile,”option”)
第一个参数为文件名,更确切的说是包含该文件名的字符串的地址。
第二个参数为打开选项,例如:”r”表示只读模式,”w”表示只写模式,”a+”表示可读可写可追加。相应的加上”b”表示以二进制视图打开文件(”rb”二进制只读模式)。
如果文件打开成功,函数返回一个文件指针(FILE *pFile);如果操作失败,则返回NULL。
fclose(FILE *pFile)
关闭一个文件,参数为文件指针。
关闭成功返回0,关闭失败返回EOF。
2. 写入文件
fprintf(FILE *pFile,”%s”,char *pWord);
写入特定格式的数据到制定文件中,使用类似printf,只是输出的目标编程了pFile制定的文件,而不是stdout。
fputs(char *pStr,FILE *pFile);
输出字符串到文件。两个参数:第一个字符串的地址,第二个打印目标文件。
fputs在输出的时候不会自动在字符串空白字符前添加回车。
putc(char pChracter,FILE *pFile);
输出字符到文件。两个参数:一个是要操作的字符,一个是目标文件。Stdout表示默认终端,一般为显示器。
3. 读入文件
fscanf(FILE *pFile,”%s”,char *pWord);
读入文件中指定格式的数据,参数意义同fprintf。
fgets(char *pStr,char MAX,FILE *pFile);
读入文件中的字符串,长度不超过MAX。如果fgets在达到字符最大数目之前读完了一整行,它将在空白字符前添加一个换行符以标识一行结束。
getc(FILE *pFile);
读入pFile文件中的一个字符。
3.文件定位,随机读写
以上的文件操作都是基于顺序读写的,如果想对一个随机的文件位置读写,需要用到下面2个函数。
ftell(FILE *pFile);
返回一个LONG数据,长整形,指示当前文件的读写位置距离文件开头的字节数目。
fseek(FILE *pFile,LONG nAddr,OPTION);
将文件读写位置转移到指定位置。nAddr表示跳转的字节数目,OPTION表示文件的跳转基准点:SEEK_SET文件开始,SEEK_CUR当前位置,SEEK_END文件末尾。