当前位置:文档之家› C语言程序设计--17-文件

C语言程序设计--17-文件

fputc(ch,stdout); 等价于
putchat(ch);
14
例1 从键盘上输入一行字符写入data1.dat中,遇#结束
#include "stdio.h"
例13.3(P315)
main( )
{FILE *fp;
定义指向文件的指针
fifp((=ffpo=pfeonp(edna(t"ad1a.dtaa1t.,t"xwt",)";w"))==N打U开LL文) 件,使fp指向文件
{printf("cannot open this file\n"); exit(0);}
ch=getchar( );
从键盘读入到内存
while(ch!='#') {fputc(ch,fp); putchar(ch); ch=getchar( );
从内存写入文件 输出到屏幕让用户观察
从键盘到内存,为下次循环准备
– fread( )函数:将一组数据由二进制文件读入到内存 fwrite( )函数:将一组数据写入二进制文件
12
一、字符读写函数
文件类型:ASCII码文件,二进制文件 1、从文件读字符 调用格式: fgetc(fp); 功能: 从fp所指定的文件中读入一个字符到内存。 返回值: 如果输入成功,返回所读入的字符;若输入
文件的打开的常用格式: if((fp=fopen("aa", "r"))==NULL) { printf("cannot open this file\n"); exit(0); /*关闭所有文件,终止正在调用的过程*/ }
8
二、文件的关闭
方法: fclose(文件指针); 例如:fclose(fp); 将指针fp指向的文件关闭。所谓文件关闭就是文件指 针与文件的指向关系中断。
注:‘0’、‘1’ 的ASCII码值分别为48、49
在二进制文件中:是按数据在内存中的存储形式 (即按补码)存储的,占2个字节,分别为: 00000011 11101000
注:1000=512+256+128+64+32+0+8+0+0+0 =(00000011 11101000)2 4
§13.2 指向文件的指针
文件的创建方式: (1)通过文字处理软件或操作系统的文件管理功能; (2)通过程序语句创建。
数据的输入和输出: 在计算机中,数据的输入和输出都是相对内存而言。 将数据从磁盘文件或输入设备读入内存称为输入,从 内存写到磁盘文件或输出设备称为输出。
2
文件的组织形式
文件可分为ASCII码文件和二进制文件: 一、ASCII文件:又称为文本文件(.txt)文件,其中每个字
指向文件的指针的定义: FILE *变量名; 如:FILE *fp; 则定义了指针变量fp是一个指向文件的指针。
注意:使用FILE定义指向文件的指针时,必须 包含头文件stdio.h
5
§13.3 文件的打开和关闭
文件使用前,应先将文件打开到内存缓冲区,使用 之后应将文件关闭,即把缓冲区中的数据回存到文 件,然后释放内存缓冲区。
C语言电子教案(十九)
第十九讲 第十三章 文件 主要内容: §13.1 文件的概念 §13.2 文件类型指针 §13.3 文件的打开和关闭 §13.4 文件的读写 §13.5 文件的定位
1
§13.1 文件的概念
文件:存储在外部介质(如:软盘、硬盘、光盘等)上 的数据的集合。文件又是以文件名作为标识符。
打开文件的函数:fopen()函数; 关闭文件的函数:fclose()函数。
6
一、文件的打开
方法: FILE *fp; fp=fopen(文件名,打开方式);
文件的打开方式:
"r": 文本文件只读
打开文件并使指针指向文件首
"w": 文本文件只写
打开文件并使指针指向文件首
"a": 文本文件追加
键盘
读出文件 中的数据 不能直接 从文件到 屏幕,而 文件的写 入操作也 不能直接 由键盘到 文件,必 须经过内 存才能进 行。
11
文件的读写
文件的读写操作包括以下几种:
– getc( )函数:将一个字符由文件读入到内存 fputc( )函数:将一个字符写入文件
– fscanf( )函数:将一组数据由ASCII码文件读入到内存 fprintf( )函数:将一组数据写入ASCII码文件
不成功,则返回EOF(-1)
2、写字符到文件 调用格式: fputc(ch,fp); 功能: 将字符ch写入fp所指定的数据文件中。 返回值: 如果输入成功,返回所写入的字符;若输入
不成功,则返回EOF(-1);
13
字符读写函数
ch=fgetc(stdin); 等价于
ch=getchar( );
} fclose(fp);
关闭文件
}
15
二、数据块读写函数
文件类型:二进制文件 1、读文件 调用格式: fread(p,size,n,fp); 功能:从fp指定的文件中,读出连续n个大小为size的数
打开文件并使指针指向文件尾
"rb": 二进制文件的只读
"r+": 二进制文件可读可写
7
一、文件的打开
例如: FILE *fp; fp=fopen("E:\test.dat","w"); 表示将E盘根目录下的test.dat文件,按只写的方式打开。 如果磁盘上有此文件,打开并将文件指针指向文件首;如 果磁盘上无此文件,创建一个新文件并打开。
节存放一个ASCII码字符。 ASCII码文件占存储空间大,且要花费时间进行二进制形 式与ASCII码形式之间的转换 二、二进制文件:是将内存中的数据按在内存中的存储形式 原样输出到磁盘上存放。 二进制文件节省存储空间,不需要转换,但不能直观地显 示文件的内容
3
文件的组织形式
如:整数1000
在ASCII文件中:4个字符('1','0','0','0')占 4个字节存储。分别为: 00110001 00110000 00110000 00110000
9
§13.4 文件的读写
文件的读写步骤:
打开文件到内存缓冲区 顺序自然定位
读写位置定位 强制定位
读写文件 关闭文件,使文件从缓冲区写回磁盘
10
文件的读写
文件内容显示到屏幕的步骤:
文件



出据
件 内存 输
(缓冲区)
变量
屏幕
从键盘输入数据写到文件的步骤:
写 文
文件 件 (缓冲区)
数 入据
内存 输 变量
相关主题