C语言第三章 输入和输出.ppt

  1. 1、本文档共38页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三章 数据的输入和输出 一个通用的程序往往需要包含对数据的输入和输出的处理过程,数据的输入和输出部分是程序和用户之间的界面部分。C语言本身没有提供输入和输出语句,而是由C语言编译系统在标准函数库中定义了一些有用的输入和输出函数,程序中的输入和输出是通过调用库函数来实现的。 由于C语言编译系统中的“stdio.h”头文件中包含了与标准输入和输出有关的变量定义及相应的宏定义,所以,在利用标准库函数进行输入和输出时,一般需要用编译预处理命令#include将文件“stdio.h”包含到用户源文件中 本章将介绍几个最基本的输入和输出函数,它们都是以终端键盘和终端屏幕(或系统隐含指定的输入和输出设备)为处理对象的。 3.1 数据的输入 数据的输入一般是以终端键盘为处理对象的。 3.1.1 字符输入函数getchar getchar函数的作用是接收从键盘输入的一个字符。当程序执行到getchar函数时,将等待用户从键盘输入一个字符,然后程序再继续执行。其一般调用形式如下所示: 【例3.1】从键盘输入一个字符,并把其存入字符型变量x中。 3.1.2 格式输入函数scanf getchar函数只能输入一个字符,要想输入其它类型的数据就需要使用scanf函数了。   scanf函数是具有格式控制的输入函数,它可以用来输入C语言中的任何类型的数据,而且可以同时输入多个同类型的或不同类型的数据。其一般调用形式如下所示: 1. 格式控制 “格式控制”部分是由双引号括起来的字符串,它主要是由格式说明符组成的,而格式说明符是由“%”和格式字符组成的。如,%c,%d等,它的作用是将输入的数据转换为指定的格式后存入到由地址表所指向的相应的变量中。 scanf函数中使用的格式字符主要包括如下几个: d,i:用来输入十进制整数。输入长整型数据时,使用 ld; 输入短整型数据时,使用hd。 o: 用来输入八进制整数。输入长整型数据时,使用 lo; 输入短整型数据时,使用ho。 x,X:用来输入十六进制整数。输入长整型数据时,使用lx; 输入短整型数据时,使用hx。 c: 用来输入单个字符。 f: 用来输入浮点数。可以用小数形式或指数形式输入 e,E,g,G:用来输入浮点数,对于输入来讲,其作用与f相同。 s: 用来输入以\0为结束标志的字符串。以非空白字符开始, 以第一个空白字符结束。(如输入:AB CD,则只读入AB) u: 用来输入无符号十进制数。无符号长整型用lu 2. 地址表 scanf函数中的“地址表”是由变量的地址组成的,如果“地址表”中有多个变量,则每个变量之间应由逗号隔开。在C语言中,变量的地址可由取地址运算符“”得到,例如,变量a的地址可写为a。 【例3.2】利用scanf函数,从键盘输入一个整型数(十进制)、一个浮点型数和一个字符,并分别存入变量i、f和c中。 使用scanf函数时,需要注意如下几个问题: (1) 在scanf函数“格式控制”部分中的每个格式说明符,都必须在“地址表”中有一个变量与之对应。 (2) 当格式说明符之间没有任何字符时,在输入数据时,两个数据之间使用“空格”、tab或“回车”键作间隔;如果格式说明符之间包含其它字符,则输入数据时,应输入与这些字符相同的字符作间隔。   在输入字符型数据时,由于“空格”也作为有效字符输入,因此,不需要用“空格”作间隔,只要输入一个字符即可。例如: scanf(“%c%c%c”,c1,c2,c3); 若输入: a b cCR 则: ‘a’=c1,空格字符=c2,’b’=c3 若输入:abc 则: ‘a’=c1,’b’=c2,’c’=c3 (3) 可以在格式说明符的前面指定输入数据所占的列数,系统将自动按此列数来截取所需的数据。 (6) 应该特别注意的是,scanf函数中的“地址表”部分应当是变量的地址,而不是变量名,如果只写出变量名,一般在编译阶段是检查不出错误的,但当程序执行时,就会出现混乱。 (7)如果在%后有一个’*’附加说明符,表示跳过它指定的列数,即不赋给相应的变量。例如: scanf(“2d %*3d %2d”,a,b); 如果输入以下信息: 12u345u67(回车),其中u表示空格符 系统会将12赋给整型变量a,而%*3d表示读入3位整数但不赋给任何变量。然后,再读入2位整数67赋给正型变量b。 3.2 数据的输出

文档评论(0)

word.ppt文档 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档