天天看点

C语言学习笔记-文件读写函数汇总

一、打开文件

FILE *fopen( const char * filename, const char * mode );

FILE指的是C语言的文件类型,其在stdio.h中有定义;

filename指的是文件路径与文件名,格式为"磁盘:/文件夹/文件名.文件类型",例如:“C:/qaq/test.txt”(特别注意是左斜杠,不是右斜杠);

mode指的是文件打开的模式。

C语言学习笔记-文件读写函数汇总

二、关闭文件

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;
}
           

运行结果如下:

C语言学习笔记-文件读写函数汇总

继续阅读