C语言程序设计(第3章程序控制语句)2

文章作者 100test 发表时间 2007:03:10 17:20:38
来源 100Test.Com百考试题网


3.2 数据的输入与输出
在程序的运行过程中,往往需要由用户输入一些数据,而程序运算所得到的计算结果等又需要输出给用户,由此实现人与计算机之间的交互,所以在程序设计中,输入输出语句是一类必不可少的重要语句,在C语言中,没有专门的输入输出语句,所有的输入输出操作都是通过对标准I / O库函数的调用实现。最常用的输入输出函数有scanf( )、pri ntf( )、getchar( )和putchar( ),以下分别介绍。

3.2.1 scanf()函数
格式化输入函数scanf( )的功能是从键盘上输入数据,该输入数据按指定的输入格式被赋给相应的输入项。函数一般格式为:
scanf( "控制字符串",输入项列表);
其中控制字符串规定数据的输入格式,必须用双引号括起,其内容是由格式说明和普通字符两部分组成。输入项列表则由一个或多个变量地址组成,当变量地址有多个时,各变量地址之间用逗号“,”分隔。
scanf( )中各变量要加地址操作符,就是变量名前加“ &.”,这是初学者容易忽略的一个问题。应注意输入类型与变量类型一致。
下面探讨控制字符串的两个组成部分:格式说明和普通字符。
1. 格式说明
格式说明规定了输入项中的变量以何种类型的数据格式被输入,形式是:
% [ <修饰符> ] <格式字>
各个格式字符及其意义见表3 - 1。
表3-1 输入格式字符
格式字符 意义
d 输入一个十进制整数
o 输入一个八进制整数
x 输入一个十六进制整数
f 输入一个小数形式的浮点数
e 输入一个指数形式的浮点数
c 输入一个字符
s 输入一个字符串

各修饰符是可选的,可以没有,这些修饰符是:
⑴ 字段宽度
例如:scanf("=",&.a)
按宽度3输入一个整数赋给变量a。
⑵ l和h
可以和d、o、x一起使用,加l表示输入数据为长整数,加h表示输入数据为短整数,例如:
scanf("ld % hd" , &.x , &.i)
则x按宽度为1 0的长整型读入,而i按短整数读入。
⑶ 字符*
*表示按规定格式输入但不赋予相应变量,作用是跳过相应的数据。
例如:
scanf("M % *d % 4d" , &.x , &.y , &.z)
执行该语句,若输入为“1 2 3”
结果为x = 1,z = 3,y未赋值,2被跳过。

2. 普通字符
普通字符包括空格、转义字符和可打印字符。
(1) 空格
在有多个输入项时,一般用空格或回车作为分隔符,若以空格作分隔符,则当输入项中包含字符类型时,可能产生非预期的结果,例如:
scanf("%d %c" , &.a , &.ch)
输入32q
期望a = 32,ch = q,但实际上,分隔符空格被读入并赋给ch。
为避免这种情况,可使用如下语句:
scanf("%d %c" , &.a , &.ch)
此处% d后的空格,就可跳过字符“ q”前的所有空格,保证非空格数据的正确录入。
(2) 转义字符: \n、\t
先看下面的例子:
scanf("%d %d" , &.a , &.b).
scanf("%d %d %d" , &.x , &.y , &.z).
输入为1 2 3
4 5 6
结果为:a = 1, b = 2, x = 3, y = 4, z = 5
若将上述语句改为:
scanf("%d %d\n" , &.a , &.b).
scanf("%d %d %d" , &.x , &.y , &.z).
对同样的输入,其结果为a = 1,b = 2,x = 4,y = 5,z = 6,由于在第一个scanf的最后有一个\n,所以第二个scanf语句将从第二个输入行获得数据。
(3) 可打印字符
例如:scanf("%d,%d,%c",&.a,&.b,&.ch).
当输入为: 1, 2, q
即:a = 1,b = 2,ch = q
若输入为1 2 q

相关文章


C语言程序设计(第3章程序控制语句)
福建:2005年全国计算机等级考试将作调整
C语言程序设计(第3章程序控制语句)2
2006年4月全国计算机等级考试试题汇总
江西:2005年上半年全国计算机等级考试宣传提纲公布
计算机等级考试:常用算法设计方法2
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛