C(五)

不想你离开。 提交于 2020-01-27 22:16:12

文件

打开文件:
fopen(char *s,“r”) : 返回文件指针,打开不成功返回NULL。

打开方式:
r : 只读,文本文件。
w : 只写,文本文件,创建新的并打开文件,无论是否存在,都创建新的,不是在原文件上动手脚。
a : 只写,文本文件,文件位置指针到最后,在文件末尾写。
b : 与上面结合表示打开二进制文件。
(+) :与上边结合表示读写。

feof(fp) : 判断文件位置指针是否到文件末尾,读到末尾返回真值。

关闭文件
fclose§;

FILE *p = fopen("D:\\demo.txt","r");	//D:\\两个反斜杠因为转义字符

文件读写

文件有一个文件指针和一个不可见的读写位置指针,每读写多少文件位置指针就后移多少,文件的读写都是从文件位置指针处开始的,要手动移动文件位置指针可用

fseek(file *p,long offset,int fromwhere);

从formwhere处移动offset个字节,来指示下一个要读写的数据位置。
offset为正向后移动,为负向前移动,规定为长整型数据。
fromwhere:

  • SEEK_SET或0:起始位置
  • SEEK_CUR或1:当前位置
  • SEEK_END或2:文件结尾
rewind(file *p); 

将文件位置指针指向文件头。

按字符读写

fgetc(fp) : 从文件中读一个字符,并将文件的位置指针后移一位。能读空白字符。
fputc(int/char,p) : 写成功返回写入字符,失败返回EOF(-1)。

按字符串读写

fgets(char *s,int n,file *p) : 从文件读入,读n-1个字符到s中,读入换行符后停止读入。
fputs(char *s,file *p) : 写到文件中。

按格式读写

fprintf(file *p,"%10d,%c,%8s",a,b,c);
fscanf(file *p,"%10d,%c,%8s",&a,&b,&c);

按数据块读写

fread(void *buffer, u int size, u int count, file *p);
fwrite(void *buffer, u int size, u int count, file *p);

从文件读写count块大小为size的数据到buffer中去,按数据块读写允许读写多块相同类型的数据,如数组的读写可以一次完成。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!