c语言程序中必不可少的,C语言程序设计(第3章程序控制语句)2

55408b9730e7125906cc98f1d9f6ba91.png

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("%3d",&a)

按宽度3输入一个整数赋给变量a。

⑵ l和h

可以和d、o、x一起使用,加l表示输入数据为长整数,加h表示输入数据为短整数,例如:

scanf("%10ld % hd" , &x , &i)

则x按宽度为1 0的长整型读入,而i按短整数读入。

⑶ 字符*

*表示按规定格式输入但不赋予相应变量,作用是跳过相应的数据。

例如:

scanf("%4d % *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

2829f2ca24f0d0090cbba57f30759f23.png

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

下载Word文档到电脑,方便收藏和打印[全文共1519字]

编辑推荐:

8b95f2eb3d3f7ce4dc3bf1178c74941e.png

8b95f2eb3d3f7ce4dc3bf1178c74941e.png

8b95f2eb3d3f7ce4dc3bf1178c74941e.png

8b95f2eb3d3f7ce4dc3bf1178c74941e.png

8b95f2eb3d3f7ce4dc3bf1178c74941e.png

下载Word文档

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值