文件类型指针 FILE *fp
–
文本文件:r只读、w只写
二进制文件:rb只读、wb只写
打开文件
*fp = fopen(“文件名”,“方式”);
如:fp = fopen("file1.txt" , "r");
–
关闭文件
*fp = fclose(“文件名”);
如:fclose(fp);
–
必须加:
if(fp == NULL) {
perror(“打开文件时发生错误”);
exit(1); 或 return(-1);
}
文本文件
fputc(int char, FILE *stream) : 把参数 char 指定的字符(一个无符号字符)写入到给定流 stream中,并把位置标识符往前移动。
fputc("这是 C 语言。\n",fp);
–顺序写入
fgetc(FILE *stream) : 从给定流 stream获取下一个字符(一个无符号字符),并把位置标识符往前移动。
int c = fgetc(fp);
–顺序读取
二进制文件
rewind(FILE *stream) : 设置文件位置为给定流 stream 的文件的开头。
rewind(fp);
–
fscanf(FILE *stream, const char *format, …) : 从给定流 stream 读取格式化输入。
如果成功,该函数返回成功匹配和赋值的个数。如果到达文件末尾或发生读错误,则返回 EOF。
fscanf(fp, "%s %s %s %d", str1, str2, str3, &year);
--读取
注:EOF 是end of file的缩写。
“!=EOF” 表示文件还没有结束,“=EOF” 表示到文件末尾了。
你在用函数读入文件数据的时候,函数总会返回一个状态,是读取成功还是失败,那么这个状态怎么表示呢,所以就约定俗成定义一个标识符表示这个状态,就有了EOF
fprintf(FILE *stream, const char *format, …) 发送格式化输出到流 stream 中。
fprintf(fp, "%s %s %s %d", "We", "are", "in", 2014);
–写入
打开文件,就是建立文件缓冲区。关闭文件,就是要强制 地把文件缓冲区中的内容写到磁盘文件中。
源代码1 fputc
FILE *fp;
fp=fopen("file1.txt","w");
if(fp==NULL){