一、文件种类(按数据的组织类型分类)
ASCII文件(文本文件):每个字节放一个ASCII代码
二进制文件:把内存中的数据按照内存中的原样(二进制)显示出来
如存入一个十进制的 10000D:
内存(以二进制储存):00100111 00010000
二进制文件(直接取出内存显示):00100111 00010000
ASCII文件(将10000D转化为ASCII值再变为二进制):00110001 00110000 00110000 00110000 00110000
二、文件指针
文件型指针变量
FILE *fp ;
fp指向一个文件。
三、程序终止
exit()函数
1、头文件:stdlib.h
3、函数原型:void exit(int status);
3、功能:关闭所有文件,并退出程序
exit(0) 程序正常退出;
exit(1)或exit(-1) 程序异常退出。
四、文件的打开
fopen()函数
1、头文件:stdio.h
2、调用形式
文件指针名 = fopen(文件名,文件使用方式)
注意:"r"只能读取已存在的文件
五、文件的关闭
fclose()函数
1、头文件:stdio.h
2、函数原型:int fclose( FILE *fp );
3、功能:使文件变量不再指向该文件。如果关闭成功,则返回0;失败则返回 EOF(-1)
EOF打出方式 : windows系统 control+Z,IOS系统 control+D
4、关闭是否成功的检验
if(fclose(fp) != 0)
{
printf("Error in closing the file.\n");
}
六、文件内部的位置指针
文件打开时,系统会自动生成一个位置指针。除Append(追加)模式以外,指针初始指向文件的第一个字符;Append模式,指针初始指向文件最后一个字符。
七、读写函数
头文件:stdio.h
字符读写函数
fputc()函数
1、函数原型:int fputc (int c, FILE *fp);
2、功能:将字符(ch的ASCII值)输出到所指向的文件中。
返回值:在正常调用情况下,函数返回写入文件的字符的ASCII码值,出错时,返回EOF(-1)。
当正确写入一个字符或一个字节的数据后,文件内部写指针会自动后移一个字节的位置。
//fputc()的应用
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
FILE *fp;
char ch,filename[50];
// 输入文件名
printf("Input the filename.\n");
gets(filename);
// 创建并打开文件,检查文件是否打开成功
if(!(fp = fopen(filename, "w+")))
{
printf("Error in opening the file.\n");
exit(0);//正常退出程序
}
// 将字符写入文件
printf("Input sentence.\n");
ch = getchar();
while (ch != EOF)//EOF:control+D/Z
// 当输入EOF时停止
{
fputc(ch, fp);
ch = getchar();
}
// 关闭文件,检查文件关闭是否成功
if (fclose(fp) != 0)
{
printf("Error in closing the file.\n");
}
}
fgetc()函数
1、函数原型:int fgetc(FILE *s);
2、功能:文件中读取一个字符,读取一个字节后,光标位置后移一个字节。
读取成功返回位置指针指向的字符的值;读取失败,则返回EOF(-1)。
【注意】用fgetc()读取的文件必须是以读或读写方式打开的。
//fgetc()的应用
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
FILE *fp;
char ch,filename[50];
// 输入文件名
printf("Input the filename.\n");
gets(filename);
// 创建并打开文件,检查文件是否打开成功
if(!(fp = fopen(filename, "r")))//以只读方式打开已存在的文件
{
printf("Error in opening the file.\n");
exit(0);//正常退出程序
}
// 输出文件
ch = fgetc(fp);
while (ch != EOF)
{
putchar(ch);
ch = fgetc(fp);
}
// 关闭文件,检查文件关闭是否成功
if (fclose(fp) != 0)
{
printf("Error in closing the file.\n");
}
}