一、I/ O设备
输入设备:键盘、鼠标;软盘、硬盘、光驱;扫描仪、视频采集卡、电视卡、游戏杆、话筒……
输出设备:显示器、打印机;软盘、硬盘、 CD/DVD-RW ;音箱……
二、标准输入输出
三、流
四、外存和内存
五、文件
六、文件和流
七、文件系统
八、文件的打开和关闭
(一)、文件打开方式
1)文本文件
“r” //只读 已存在的文件
“w” //只写 不论该文件是否存在,都新建一个文件
“a” //追加 向文本文件尾增加数据,该文件必须存在
“r+” //读写 打开一个已存在的文件,用于读写
“w+” //读写 建立一个新文件,可读可写
“a+” //读写 向文件尾追加数据,也可读
2)二进制文件
“rb”
“wb”
“ab”
“rb+”
“wb+”
“ab+”
文件指针
FILE *fp ;//FILE型指针变量,标识一个特定的磁盘文件
typedef struct {
short level; /*缓冲区‘满’或‘空’的程度*/
unsigned flags; /*文件状态标志*/
char fd; /*文件描述符*/
unsigned char hold; /*如无缓冲区不读字符*/
short bsize; /*缓冲区的大小*/
unsigned char *buffer;/*数据缓冲区的位置*/
unsigned char *curp; /*指针当前的指向*/
unsigned istemp; /*临时文件指示器*/
short token; /*用于有效性检查*/
}FILE; /*在stdio.h文件中定义*/
(二)文件的打开和关闭
1、fopen和fclose
if ((fp = fopen("jessica.txt","w")) == NULL)//用于判断文件能否打开
int fclose(FILE *fp);
fclose函数的返回值:当顺利地执行了关闭操作,返回值为0;如果返回值为非零值,表示关闭时有错误
2、按字符读写文件
1)字符读写
int fgetc(FILE *fp);
/*从fp读出一个字符,将位置指针指向下一个字符
若读成功,则返回该字符,若读到文件尾,则返回EOF(EOF是一个符号常量,在stdio.h中定义为-1)
*/
int fputc(int c, FILE *fp);
/*向fp输出字符c
若写入错误,则返回EOF,否则返回c
*/
2)字符串读写
char *fgets(char *s,int n,FILE *fp);
/*从fp所指的文件中读取字符串并在字符串末尾添加'\0',然后存入s,最多读n-1个字符
当读到回车换行符、文件末尾或读满n-1个字符时,函数返回该字符串的首地址
*/
fgets(buf, sizeof(buf), stdin);//特例
int fputs(const char *s, FILE *fp);
/*将字符串写入文件中。若出现写入错误,则返回 EOF,否则返回一个非负数*/
3、按格式读写文件
格式化读写
int fscanf(FILE *fp,const char *format,...);
fscanf(fp, "%d,%6.2f", &i, &t);//第1个参数为文件指针,第2 个参数为格式控制参数,第3 个参数为地址参数表列
int fprintf(FILE *fp,const char *format,...);
fprintf(fp, "%d,%6.2f", i, t);//第1个参数为文件指针,第2 个参数为格式控制参数,第3 个参数为输出参数表列
4、按数据块读写文件
fread和fwrite