一、打开文件
FILE *fopen( const char * filename, const char * mode );
FILE指的是C语言的文件类型,其在stdio.h中有定义;
filename指的是文件路径与文件名,格式为"磁盘:/文件夹/文件名.文件类型",例如:“C:/qaq/test.txt”(特别注意是左斜杠,不是右斜杠);
mode指的是文件打开的模式。
二、关闭文件
int fclose( FILE *fp );
该函数是有int类型返回值的,当文件被成功关闭时,函数返回值为零,关闭文件失败时将返回EOF。
三、写入文件
1、fputc函数
int fputc( int c, FILE *fp );
作用:向文件中输入一个字符,若成功输入则返回输入的值,若失败则返回EOF。在C语言中,#define EOF (-1) 。
特别注意:程序中所写的int类型在写入文本文件时会按照ASCII码被自动转化为char类型。如:fputc( 65, fp );
在文档中为:A。
2、fputs函数与fprintf函数
int fputc( int c, FILE *fp );
int fputs( const char *s, FILE *fp );
作用:向文件中输入一个字符串,若成功输入则返回一个非负值,若失败则返回EOF。
四、读取文件
1、fgetc函数
int fgetc( FILE * fp );
作用:读取文件中的一个字符,若成功则返回读取的字符,若失败则返回EOF。
2、fgets函数
char *fgets( char *buf, int n, FILE *fp );
buf指的是存放读取字符的数组;
n指的是读取字符的长度,当读到第n-1个字符时,会在之后加一个NULL表示终止字符串;
作用:读取文件中的n个字符,若成功则返回读取的字符,若文档提前结束(也即遇到EOF)或遇到换行符\n
,则自动加入终止符NULL。
3、fscanf函数
int fscanf( FILE *fp, const char *format, ... );
作用:读取文件中的字符,若遇到空格则会自动加入终止符NULL。
4、fseek函数
int fseek ( FILE *fp, long int offset, int whence );
offset指的是偏移量;
whence指的是参考点,包括: SEEK_SET(文件头),SEEK_CUR(文件中的标记点),SEEK_END(文件尾);
作用:在指定位置对文件进行输入,且只改变输入量的部分,而不影响文档其他部分。
实例:
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *fp=NULL;
int a,ch;
if((fp=fopen("C:/qaq/test.txt","w"))==NULL)
{
printf("file cannot open \n");
exit(0);
//exit结束程序,一般0为正常推出,其它数字为异常,其对应的错误可以自己指定。
}
else
{
printf("file opened for writing \n");
fprintf(fp, "I like to study C.\n"); //fprinf
a=fputc( 65, fp ); //fputc
printf("%c \n",a);
fputs("\nI qpink it's interesting. \n", fp); //fputs
fseek ( fp , 24 , SEEK_SET ); //fseek
fputs ( " th" , fp );
}
if(fclose(fp)!=0)
printf("file cannot be closed \n");
else
printf("file is now closed \n");
if((fp=fopen("C:/qaq/test.txt","r"))==NULL)
{
printf("file cannot open \n");
exit(0);
}
else
{
printf("file opened for reading \n");
while((ch=fgetc(fp))!=EOF)
putchar(ch);
printf("\n");
}
if(fclose(fp)!=0)
printf("file cannot be closed \n");
else
printf("file is now closed \n");
return 0;
}
运行结果如下: