基本点
- 通过指定文件名可访问所需要使用的文件
- 一个流式文件被打开时,自动建立该文件的FILE结构并返回指向该结构的指针,且只能通过该指针访问该文件
- C程序开始执行时,系统自动打开预定义的三个流式文件,运行结束时自动关闭
- 标准输入文件
stdin
,通常指定为键盘,从控制台读入 - 标准输出文件
stdout
,通常指定为显示终端,向控制台写 - 标准错误文件
stderr
,通常指定为显示终端,向控制台写
- 标准输入文件
相关函数
- 打开文件函数~
FILE* fopen(const char* path, const char* mode)
- 第一个参数是文件名
- 第二个参数有 “r”(读)、”w”(写)、”a”(添加)
- ”r”打开的文件不能写
- “w”会建立一个新文件,如果已存在,覆盖同名文件,原有内容丢失
- “a”会打开已存在的文件,并将读写指针移到文件尾部,只能写文件
- 需要同时读写,使用”r+”、”w+”、”a+”扩充原功能
- 附加”t”、”b”字符可指定按文本方式还是二进制方式打开,缺省状态为文本方式,如”rb”
- 关闭文件函数~
int fclose(FILE* fp)
fp
是调用fopen
时返回的文件指针- 关闭成功返回0,返回其他值则出错
- 从文件中读取字符~
int getc(FILE*fp)
- 向文件写入字符~
int putc(int ch, FILE*fp)
fgets()
从文件中读出字符串、fputs()
向文件中写字符串fread()
、fwrite()
、fseek()
、fscanf()
、fprintf()
备注
常用以下方式读数据、写结果
freopen("INPUT.txt", "r", stdin);
freopen("OUTPUT.txt", "w", stdout);
...
fclose(stdin);
fclose(stdout);
#include <stdio.h>
int main()
{
FILE *fp1, *fp2;
fp1 = fopen("slyar.in","r");
fp2 = fopen("slyar.out","w");
/* 中间按原样写代码,把scanf和printf改为文件操作即可 */
fclose(fp1);
fclose(fp2);
return 0;
}