收藏 分享(赏)

第11章标准输入输出.ppt

上传人:jinchen 文档编号:12181293 上传时间:2021-10-24 格式:PPT 页数:16 大小:69KB
下载 相关 举报
第11章标准输入输出.ppt_第1页
第1页 / 共16页
第11章标准输入输出.ppt_第2页
第2页 / 共16页
第11章标准输入输出.ppt_第3页
第3页 / 共16页
第11章标准输入输出.ppt_第4页
第4页 / 共16页
第11章标准输入输出.ppt_第5页
第5页 / 共16页
点击查看更多>>
资源描述

1、第11章 标准输入输出,标准输入输出的基本操作 非格式化输入输出 格式化输入输出,11.1 标准输入输出的基本操作,文件控制结构中包含处理文件所需的全部信息,例如文件名、文件当前的读写位置、用于该文件读写的内存缓冲区位置等。打开文件时,系统会在内存中自动建立该文件的控制结构。关闭文件时,文件控制结构被释放。在对文件进行操作之前,要首先获取文件的指针,即指向文件控制结构的指针,后续操作都通过该指针进行。 标准输入输出时,有3个比较特殊的文件,它们是: 标准输入文件(stdin):一般为键盘; 标准输出文件(stdout):一般为显示器; 标准错误输出文件(stderr):一般为显示器。,11.1

2、.1 文件的打开,操作文件之前要打开文件,打开文件主要是在系统中分配一些资源用于保存该文件的状态信息,并获取文件的指针,以后调用其它函数对文件进行读写操作时都要提供这个指针。 FILE *fopen(const char *filename, const char *modes);,11.1.2 文件的关闭,对文件操作完成后,应该关闭文件,进而释放文件所占用的系统资源。文件关闭之后,文件指针将不再有效,用户也就无法通过该指针操作文件。 int fclose(FILE *fp);,11.1.3 缓冲区的刷新,刷新操作是指将缓冲区中的数据清除,这项工作可以由fflush或fpurge函数完成。 i

3、nt fflush(FILE *fp); int fpurge(FILE *fp);,11.1.4 缓冲区属性的设置,缓冲区的大小和类型等都可以通过函数来设置,缓冲区的类型有下面三种: 全缓冲:缓冲区被填满后才执行输入输出操作,将数据写入到磁盘文件或输出到用户终端; 行缓冲:缓冲区中填入换行符时,执行输入输出操作; 无缓冲:不对数据进行缓存,标准错误输出stderr一般就是无缓冲的,这可以使错误信息尽快地显示出来。 int setvbuf(FILE *fp, char *buf, int mode, size_t size); _IOFBF、_IOLBF、_IONBF,11.2 非格式化输入输

4、出,非格式化输入输出包括单个字节输入输出、字符串(行)输入输出以及数据块输入输出,下面分别进行介绍。,11.2.1 单个字节输入输出,在进行单个字节的输入输出操作时,可以使用fgetc函数和fputc函数。 int fgetc(FILE *fp); int fputc(int c, FILE *fp); int getchar(); int fgetc(stdin); int putchar(int c); int fputc(c, stdout);,11.2.1 单个字节输入输出,rewind函数 void rewind(FILE * fp); fseek函数 int fseek(FILE

5、*fp, long offset, int whence); fseek(fp, 0, SEEK_SET); fseek(fp, 0, SEEK_END); ftell函数 long ftell(FILE *fp);,11.2.2 字符串输入输出,对文件的输入输出,除了可以利用fgetc函数和fputc函数以字节为单位进行外,还可以使用fgets函数和fputs函数以字符串(行)为单位进行。 char *fgets(char *s, int n, FILE *fp); int fputs(const char *s, FILE *fp);,11.2.3 数据块输入输出,对文件进行输入输出操作,

6、也可以以数据块为单位进行。所谓数据块,是指一串固定长度的字节,例如一个整型数据、一个结构体,或一个固定长度的数组等。 size_t fread(void *ptr, size_t size, size_t n, FILE *fp); size_t fwrite(void *ptr, size_t size, size_t n, FILE *fp);,11.3 格式化输入输出,格式化输出的函数 int fprintf(FILE *fp, const char *format, . ); int printf(const char *format, . ); int fprintf(stdout,

7、 const char *format, . ); % +/- 0 m.n l 转换字符,11.3 格式化输入输出,1转换字符 2指定输出精度 l 3指定输出长度 m.n double x=0.123; printf(%9.4fn, x); 0.1230 4空位填零 0 int x=123; printf(%06dn, x); 000123 5指定输出位置 +,char c=”ABCD”; printf(%-5.3sn , a); printf(%+5.3sn, a); ABC ABC,11.3 格式化输入输出,格式化输入的函数 int fscanf(FILE *fp, const char

8、*format, . ); int scanf(const char *format, . ); int fscanf(stdin, const char *format, . ); scanf(%d %d, ,11.4 常见面试题,常见面试题1:调用fgets函数从文件中读取字符时,函数在满足什么条件时返回? 常见面试题2:调用fprintf函数进行格式化输出时,如何指定输出的长度和对齐方式?,11.5 小结,这一章详细地介绍了标准输入输出的相关知识及具体的函数。这些函数都是基于标准输入输出库实现的,他们不仅可以应用于Linux系统中,也可以用于其它的操作系统。而基于文件系统的输入输出与操作系统有很大关系,不能应用于其它系统。,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报