8) 标准输入文件(键盘) , 标准输出文件(显示器) , 标准出错输出(出错信息)是由系统打开的,可直接使用 。
13.3.2 文件关闭函数(fclose函数)
文件一旦使用完毕,应用关闭文件函数把文件关闭,以避免文件的数据丢失等错误 。
fclose函数调用的一般形式是:
fclose(文件指针);
例如:
fclose(fp);
正常完成关闭文件操作时,fclose函数返回值为0 。如返回非零值则表示有错误发生 。
13.4 文件的读写
对文件的读和写是最常用的文件操作 。在C语言中提供了多种文件读写的函数:
·字符读写函数 :fgetc和fputc
·字符串读写函数:fgets和fputs
·数据块读写函数:freed和fwrite
·格式化读写函数:fscanf和fprinf
下面分别予以介绍 。使用以上函数都要求包含头文件stdio.h 。
13.4.1 字符读写函数fgetc和fputc
字符读写函数是以字符(字节)为单位的读写函数 。每次可从文件读出或向文件写入一个字符 。
1. 读字符函数fgetc
fgetc函数的功能是从指定的文件中读一个字符,函数调用的形式为:
字符变量=fgetc(文件指针);
例如:
ch=fgetc(fp);
其意义是从打开的文件fp中读取一个字符并送入ch中 。
对于fgetc函数的使用有以下几点说明:
1) 在fgetc函数调用中,读取的文件必须是以读或读写方式打开的 。
2) 读取字符的结果也可以不向字符变量赋值,
例如:
fgetc(fp);
但是读出的字符不能保存 。
3) 在文件内部有一个位置指针 。用来指向文件的当前读写字节 。在文件打开时,该指针总是指向文件的第一个字节 。使用fgetc 函数后 , 该位置指针将向后移动一个字节 。因此可连续多次使用fgetc函数,读取多个字符 。应注意文件指针和文件内部的位置指针不是一回事 。文件指针是指向整个文件的,须在程序中定义说明 , 只要不重新赋值,文件指针的值是不变的 。文件内部的位置指针用以指示文件内部的当前读写位置,每读写一次,该指针均向后移动,它不需在程序中定义说明,而是由系统自动设置的 。
【例13.1】读入文件c1.doc , 在屏幕上输出 。
#includestdio.h
main()
{
FILE *fp;
char ch;
if((fp=fopen("d:\\jrzh\\example\\c1.txt","rt"))==NULL)
{
printf("\nCannot open file strike any key exit!");
getch();
exit(1);
}
ch=fgetc(fp);
while(ch!=EOF)
{
putchar(ch);
ch=fgetc(fp);
}
fclose(fp);
}
本例程序的功能是从文件中逐个读取字符,在屏幕上显示 。程序定义了文件指针fp,以读文本文件方式打开文件“d:\\jrzh\\example\\ex1_1.c” , 并使fp指向该文件 。如打开文件出错,给出提示并退出程序 。程序第12行先读出一个字符 , 然后进入循环 , 只要读出的字符不是文件结束标志(每个文件末有一结束标志EOF)就把该字符显示在屏幕上,再读入下一字符 。每读一次,文件内部的位置指针向后移动一个字符,文件结束时,该指针指向EOF 。执行本程序将显示整个文件 。
2. 写字符函数fputc
fputc函数的功能是把一个字符写入指定的文件中,函数调用的形式为:
fputc(字符量 , 文件指针);
其中,待写入的字符量可以是字符常量或变量,例如:
fputc('a',fp);
其意义是把字符a写入fp所指向的文件中 。
对于fputc函数的使用也要说明几点:
1) 被写入的文件可以用写、读写、追加方式打开 , 用写或读写方式打开一个已存在的文件时将清除原有的文件内容,写入字符从文件首开始 。如需保留原有文件内容,希望写入的字符以文件末开始存放,必须以追加方式打开文件 。被写入的文件若不存在,则创建该文件 。
- mongodb查看数据库大小 查看mongodb集群容量
- mysql数据库优化 mysql订单优化
- mongodb数据丢失原因 为什么mongodb数据库一直在加载中
- mongodb 查看数据库 mongodb查询数据库表
- mongodb显示所有数据库 mongodb数据突然为空
- mysql备份一个表的数据 备份一个mysql库
- 屏蔽数据库的复杂性 mysql数据库屏蔽权限
- mongodb 创建表 mongodb创建数据库的语法
- 往mysql数据库录数据 lua写数据库mysql
- mongodb数据库语句 mongodb数据库文档
