简介 ■C的输入输出库是标准库中非常庞大的一部分 ■标准输入/输出函数大部分分布在<stdio.h>头文件中 ,也包括printf,,scanf,,putchar,getchar,puts,和gets等 函数 ■内容 stream、FILE、重定向、文本文件、二进制文件 %基本文件操作函数 必格式化输入输出 ·非格式化数据读写 随机访问文件 ·字符串格式化读写 C99的宽字符输入输出函数分布在<wchar.h>,不作介绍 3
简介 C的输入输出库是标准库中非常庞大的一部分 标准输入/输出函数大部分分布在<stdio.h>头文件中 ,也包括printf, scanf, putchar, getchar, puts, 和gets等 函数 内容 stream、FILE、重定向、文本文件、二进制文件 基本文件操作函数 格式化输入输出 非格式化数据读写 随机访问文件 字符串格式化读写 C99的宽字符输入输出函数分布在<wchar.h>,不作介绍 3
流(Streams) 在C中,流指任何输入源或输出目的地 ■许多小型程序只从一个流(键盘)输入,并输出到另一 个流(屏幕) 大型程序可能需要多个流 流通常指代存储在不同介质上的文件 流也可以指网络端口或打印机等设备 流的访问通过文件指针file pointer)进行,文件指针的 类型为FILE*类型 FILE*类型定义在<stdio.h>中 ■系统已预先定了几个标准的流;也可以声明新的流 FILE *fp1,*fp2;
流(Streams) 在C中,流指任何输入源或输出目的地 许多小型程序只从一个流(键盘)输入,并输出到另一 个流(屏幕) 大型程序可能需要多个流 流通常指代存储在不同介质上的文件 流也可以指网络端口或打印机等设备 流的访问通过文件指针file pointer进行,文件指针的 类型为FILE*类型 FILE*类型定义在<stdio.h>中 系统已预先定了几个标准的流;也可以声明新的流: FILE *fp1, *fp2; 4
标准流及重定向(Redirection) <stdio.h>提供了三个标准流,可直接使用: File Pointer Stream Default Meaning stdin Standard input Keyboard stdout Standard output Screen stderr Standard error Screen 1上述三个流可直接使用,不用事先打开,用完也无需 关闭 默认情况下,程序以键盘作为标准输入,以屏幕作为 标准输出,但可以通过重定向技术改变默认行为: 输入重定向:demo<in.dat,在命令提示符下输入该命令 后,scanf等函数将从in.dat而不是键盘获得输入 输出重定向:demo>out.dat,在命令提示符下输入该命令 后,printf将打印到out.dat而不是屏幕
标准流及重定向(Redirection) <stdio.h>提供了三个标准流,可直接使用: File Pointer Stream Default Meaning stdin Standard input Keyboard stdout Standard output Screen stderr Standard error Screen 上述三个流可直接使用,不用事先打开,用完也无需 关闭 默认情况下,程序以键盘作为标准输入,以屏幕作为 标准输出,但可以通过重定向技术改变默认行为: 输入重定向: demo < in.dat,在命令提示符下输入该命令 后,scanf等函数将从in.dat而不是键盘获得输入 输出重定向:demo > out.dat,在命令提示符下输入该命令 后,printf将打印到out.dat而不是屏幕 5
重定向操作 ■输入重定向和输出重定向也可以组合使用: demo in.dat out.dat ■<和'>重定向符号的顺序没有规定,下面两种均可: demo in.dat out.dat demo >out.dat <in.dat ■ 将错误信息写入stderr的好处是:即使stdouti已被重定 向,错误信息也能显示在屏幕上 6
重定向操作 输入重定向和输出重定向也可以组合使用: demo < in.dat > out.dat '<'和'>'重定向符号的顺序没有规定,下面两种均可: demo < in.dat > out.dat demo >out.dat <in.dat 将错误信息写入stderr的好处是:即使stdout已被重定 向,错误信息也能显示在屏幕上 6