C语言文件操作函数

C语言文件操作函数

  • fopen()函数
  • fclose()函数
  • fgetc()函数
  • fgets()函数
  • fputc()函数
  • fputs()函数
  • 文件函数用法的一些例子
  • fprintf()函数
  • fscanf()函数
  • fwrite()函数
  • fread()函数
  • putw()函数
  • getw()函数
  • feof()函数
  • ferror()函数
  • clearerr()函数
  • ftell()函数
  • fseek()函数
  • rewind()函数

C语言文件操作函数都在头文件 stdio.h 中

fopen()函数

  • 函数功能: fopen( ) 函数来创建一个新的文件或者打开一个已有的文件。
  • 函数原型: FILE *fopen(const char *fname,const char * mode);
  • 参数1: fname 表示文件名(可以含有路径信息)
  • 参数2: mode 表示打开的方式
  • 返回值: 返回的是 FILE *文件指针 ,如果打开失败返回 NULL(也就是0)。

mode 打开方式:
C语言文件操作函数_第1张图片

fclose()函数

  • 函数功能: fclose( ) 函数用来清理缓冲区,并释放文件指针。
  • 函数格式: int fclose( FILE *fp );
  • 返回值: 如果成功关闭文件,fclose( ) 函数返回零,如果关闭文件时发生错误,函数返回 EOF。

fgetc()函数

  • 函数功能: fgetc() 函数从 fp 所指向的输入文件中读取一个字符。
  • 函数格式: int fgetc( FILE * fp );
  • 返回值: 读取成功返回读取的字符,失败或者读到文件尾,返回EOF(即-1)。

fgets()函数

  • 函数功能:
    函数 fgets() 从 fp 所指向的输入流中读取 n - 1 个字符。
    它会把读取的字符串复制到缓冲区 buf,并在最后追加一个 null 字符(即’\0’)来终止字符串。
  • 函数格式: char *fgets( char *buf, int n, FILE *fp );
  • 返回值: 读取成功返回读取的字符串,失败或者读到文件尾,返回EOF(即-1)。

fputc()函数

  • 函数功能: fputc() 函数把参数 c 的字符值写入到 fp 所指向的输出流(即文件)中。
  • 函数格式: int fputc( int c, FILE *fp );
  • 返回值: 如果写入成功,它会返回一个非负值,如果发生错误,则会返回 EOF(即-1)。

fputs()函数

  • 函数功能: fputs()函数 把字符串 s 写入到 fp 所指向的输出流中。
  • 函数格式: int fputs( const char *s, FILE *fp );
  • 返回值: 如果写入成功,它会返回一个非负值,如果发生错误,则会返回 EOF(即-1)。

文件函数用法的一些例子

例:这是你要读的内容
C语言文件操作函数_第2张图片
fgetc()用法的例子
C语言文件操作函数_第3张图片
fgets()用法的例子
C语言文件操作函数_第4张图片
例:这是你要写的内容

  • 你好世界
  • 你好C语言

puts()用法的例子:

#include
int main(void)
{
     
	FILE *p=NULL;
	p=fopen("f:\\2.txt","w");
	if(p==NULL)//等价于 if(!p)
	//判断文件是否正确打开
	{
     
		return 0;
	}
	fputs("你好世界\n",p);
	fputs("你好C语言\n",p);
	fclose(p);
	return 0;
}

特别注意:
对文件执行写操作以后,并不会马上写入文件,而是写入到了这个文件的输出缓冲区中,只有当这个输出缓冲区满了,或者
执行了fflush(stdout),或者执行了fclose函数以后,或者程序结束,才会把输出缓冲区中的内容真正的写入到文件。

例子:把文件1.txt文件的内容写到2.txt文件中

#include
int main(void)
{
     
	FILE *file1;
	FILE *file2;
	char c;
	file1=fopen("1.txt","r");//没有写路径,默认是与c文件在同一文件夹下的路径
	file2=fopen("2.txt","w");
	while((!file1)&&(!file2))
	{
     
		return 0;
	}
	while((c=getc(file1))!=EOF)
	{
     
		fputc(c,file2);
	}
	fclose(file1);
	fclose(file2);
	return 0;
}

fprintf()函数

  • 函数功能: 往文件中写格式化数据
  • 函数格式: int fprintf( FILE *stream,const char *foramt… );
  • 返回值: 返回的是成功写入的字符个数。

fprintf(stdout,"%d",a); 等价与 printf("%d",a);

fscanf()函数

  • 函数功能: 从文件中格式化的读取数据
  • 函数格式: int fscanf( FILE *stream,const char *foramt… );
  • 返回值: 成功时返回成功读取的个数,失败时返回EOF。

fscanf(stdin,"%d",&a); 等价与 scanf("%d",&a);

fwrite()函数

  • 函数功能: 以二进制格式写数据到文件中去
  • 函数格式: int fwrite( const void*buffer ,size_t size, size_t count,FILE *stream );
  • 参数1: 要写入的数据的地址,即变量的地址
  • 参数2: 每 “块” 数据的大小
  • 参数3: 写入几块数据

fread()函数

  • 函数功能: 以二进制格式读取文件中的数据
  • 函数格式: int fread(void *buffer ,size_t size, size_t count,FILE *stream );
  • 参数1: 存放数据的地址
  • 参数2: 每 “块” 数据的大小
  • 参数3: 读几块数据

putw()函数

  • 函数功能: 以二进制格式存贮一个整数
  • 函数格式: int putw(int a,FILE *stream );

getw()函数

  • 函数功能: 以二进制格式读取一个整数
  • 函数格式: int getw(FILE *stream );
  • 返回值: 成功时返回成功读取到的值,失败时返回EOF。

feof()函数

  • 函数功能: 判断文件指针是否读取结束
  • 函数格式: int feof(FILE *stream );
  • 返回值: 如果指定的程序,已经到达末尾位置,就返回一个非零的值(即 真)。

ferror()函数

  • 函数功能: 判断文件读/写,是否出错。
  • 函数格式: int ferror(FILE *stream );
  • perror()函数 输出错误的日志。

clearerr()函数

  • 函数功能: 清除文件错误日志
  • 函数格式: void clearerr(FILE *stream );

ftell()函数

  • 函数功能: 获取文件指针的当前位置
  • 函数格式: long ftell(FILE *stream );
  • 注意: 文件只能从当前的位置读写。

fseek()函数

  • 函数功能: 定位文件指针的位置
  • 函数格式: int fseek(FILE * stream, long offset , int origin);
  • 参数2: 设置偏移量,可正可负,<0 向文件头偏移, >0 向文件末偏移。
  • 参数3:
    SEEK_SET 从文件的开始位置定位,此时参数2必须大于0。
    SEEK_CUR 从文件读到的当前位置定位。
    SEEK_END 从文件的结束位置定位,此时参数2,必须小于0。
    0表示文件的开始处
    1表示当前位置
    2表示文件尾

rewind()函数

  • 函数功能: 把文件指针的位置定位到开始位置
  • 函数格式: rewind(FILE *stream );
  • rewind(file); 等价于 fseek(file ,0,SEEK_SET);

你可能感兴趣的:(c语言,c语言)