- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言第11章I/O及有关库函数
第十一章 I/O及有关库函数
对于一个实际的计算机程序,少不了频繁地与用户交互,所以输入和输出(Input/Output)操作在程序中常常占有很大的比例。
由于输入输出操作需要和具体的输入输出设备打交道,所以很多程序设计语言的输入输出(I/O)指令的实现往往直接依赖于具体计算机的硬件设备(键盘、显示器等)特性。这使得相应的程序设计语言具有“设备相关性”,即一旦设备发生变化,则语言的实现也要相应的变化。
一个好的程序设计语言应该具有“设备无关性”,即设备的变化并不会影响语言的实现。为了实现设备无关性,标准C将诸如输入输出等与具体硬件设备相关的指令都排除在其指令集之外。相应地,每个C编译程序都伴随有一个标准函数库,其中就包括一些与I/O有关的函数。
这样,通过把语言中依赖于机器的部分交由库函数来完成,从而使得C语言的实现与具体的设备无关。这样便能比较容易地把C语言及C程序移植到其他计算机系统上。
如果在C程序中调用一个函数,而在该程序中没有这个函数所对应的程序段,则C编译程序就要到C的标准函数库中去寻找这一函数,如果找到了,该函数所对应的代码段就会加入到该程序中去。从技术上讲,这一工作是由连接程序来做的。显然,标准函数库中的函数越多,我们在程序设计中所必须编写的函数就越少。
此外,大多数C编译系统还提供了一种功能,使程序员能按自己的要求把自己编写的函数加入到标准函数库中。这样,随着标准函数库的不断扩充,用C语言来编程序就会变得越来越容易,代码的复用率也越来越高。
C库函数的种类繁多,功能各异,本章仅对常用的I/O函数做一个介绍。至于其它库函数的功能和引用方式,请参看有关的库函数手册。
§11.1 控制台I/O
所谓“控制台I/O”是指针对“标准输入设备”和“标准输出设备”的I/O操作。对大多数计算机系统而言。标准输入设备通常对应键盘(Keyboard),而标准输出设备通常对应显示器(Monitor)。在引用C的控制台I/O库函数时,需要事先用宏命令 #include 将标准输入输出(Standard Input Output)头文件“stdio.h”包含进来,即在程序头部加进宏命令:
#include stdio.h
这是因为在头文件stdio.h中包含了与标准I/O库函数有关的变量定义和宏定义。下面我们就对常用的C控制台I/O库函数作一介绍:
11.1.1 getchar和putchar (单字符输入输出)
getchar和putchar实际是在头文件stdio.h中定义的宏,它们的定义如下:
#define getchar() getc(stdin)
#define putchar(c) putc((c),stdout)
至于函数getc和putc 以及stdin和stdout的含义会在本章的后面加以介绍,大家现在只需记住getchar和putchar的引用方式及完成的功能即可。虽然getchar和putchar不是真正的函数,但为了便于理解,这里仍用函数说明的方式来给出它们的描述。
getchar的说明形式如下:
int getchar()
功能:
getchar从标准输入设备的“输入字符流”中读入下一个字符。
返回值:
getchar将所读入的字符转换为int型并返回。
putchar的说明形式如下:
int putchar(int c)
功能:
putchar向标准输出设备的“输出字符流”中输出经由实参传过来的字符c。
返回值:
putchar返回字符c。
[例11.1] 从标准输入设备读入一行字符,再将其输出。
#include stdio.h
void main()
{ int c;
/* getchar从标准输入设备读入字符,且其是“行缓冲”的,
这就意味着getchar在读入换行符’\n’之前不会返回 */
while((c=getchar()) != ’\n’) putchar(c);
}char *gets(char *s)
功能:
gets从标准输入设备读入一串字符到字符串变量s中,直到遇到换行符’\n’为止。
返回值:
gets返回s。
puts的说明形式如下:
int puts(char *s)
功能:
puts向标准输出设备输出字符串s然后再跟着输出一个换行符’\n’。
返回值:
puts返回一个非负的整数。
[例11.2] 从标准输入设备上读进若干字符行,直到遇见空行为止。然后输出最长的行。假设一行不能超过80个字符。
#include stdio.h
#include string.h
#define N 81
void main()
{ char longest[N],s[N];
int maxlen=0,len;
puts(Input some lines:);
for(gets(
您可能关注的文档
最近下载
- 除颤仪迈瑞D3说明书 .pdf VIP
- 电梯结构及原理 第9章 自动扶梯、自动人行道.ppt VIP
- 通信基础知识课件.ppt VIP
- 人教版数学七年级上册开学第一课课件.pptx VIP
- 亲子关系量表-pianta编制-张晓,陈会昌修订.docx VIP
- 贵州省丹寨汞矿四相厂历史遗留汞渣污染综合治理工程环评报告.docx VIP
- 八师兵团职工考试题库及答案.doc
- (正式版)B 6222-2005 工业企业煤气安全规程.docx VIP
- Panasonic松下滚筒式热泵干衣机NH-LH1023D NH-VH1025P NH-LHJ02YD NH-VH10B5P NH-LH10B3D NH-VH102FP NH-LHM02Y2 用户手册.pdf
- 孕妇学校健康教育宣教.pptx VIP
文档评论(0)