购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.3
数据的输入和输出

【任务1】 从键盘输入2个整数,交换它们的值后输出。

【算法分析】

①定义3个变量。

②从键盘输入2个整数存入2个变量中。

③利用第3个中间变量交换2个变量的值。

④输出2个变量交换后的结果。

【代码】

【知识点】

C语言的输入和输出操作是通过C语言标准函数库中提供的输入输出函数来实现的。由于库函数的信息都在相关的头文件中,因此使用前应在程序的开头使用相应的编译预处理命令,即在使用前必须在程序的头部使用命令:#include<stdio.h>或#include"stdio.h"。

常用头文件有:

stdio.h 定义输入输出函数

string.h 定义字符串操作函数

math.h 定义sin、cos等数学函数

(1)格式化输出函数printf()

printf()的功能是按用户指定的格式,把指定的数据显示到显示器屏幕上。

printf()的一般格式:

printf("格式字符串"[,输出项表]);

1)常用的格式字符串

①格式指示符:说明输出数据的类型、宽度、精度等。

常用的格式指示符有:

%d 带符号十进制整数。

%f 带符号十进制小数形式(默认6位小数)。

%c 输出一个字符。

②转义字符:自动转换为相应操作命令。

如任务1中的printf()中的“\n”就是转义字符,输出时产生一个“换行”。具体转义字符功能见表1-1。

③普通字符:除格式指示符和转义字符之外的其他字符,原样输出。

如任务1中的printf("交换后两个整数的值为:%d,%d\n",x,y);中的“交换后两个整数的值为:”,是格式字符串中的普通字符,原样输出。

2)输出项表

要输出的数据,可以是变量或表达式,可以没有,有多个时以“,”分隔。例如:

注意: 格式指示符一定要和输出项的数据类型一致,否则会出错。例如,printf("%d,%f \n",3.756,8);是错误的。因为“%d”是整型格式,但3.756却是实数,同样“%f”是实数格式,但8却是整型。

【例2.1】 格式化输出。

程序运行结果如图2-5所示。

图2-5 例2.1程序运行结果

字符可以用“%c”输出字符,也可以用“%d”输出字符ASCII所对应的十进制整数。值在0~255的整数,也可以用“%c”形式输出为字符。

【例2.2】 字符数据的输出。

程序运行结果如图2-6所示。

图2-6 例2.2程序运行结果

格式字符串中的格式指示符除了上面常用的情况外,其他的格式说明见表2-2和表2-3。

表2-2 printf格式字符

续表

表2-3 printf的附加格式说明字符

【例2.3】 格式化输出。

程序运行结果如图2-7所示。第一句printf中%d按实际输出123;%4d实际数据位数3小于m的值4,在左边补1个空格输出123;%-4d,向左看齐,右边补1个空格输出123 ;%2d按实际输出123。第二句printf中%ld按实际输出135790;%8ld实际数据位数6小于m的值8,在左边补2个空格输出135790;%-8ld,向左看齐,右边补2个空格输出135790 ;%5ld按实际输出135790。第三句printf中%f按默认6位小数实际输出123.456000;%10f按默认6位小数后实际数据位数10(小数点算一位)不小于m的值10,实际输出123.456000;%10.2f保留n的值2位小数后,实际位数6小于m的值10,在左边补4个空格输出123.45;%-10.2f向左看齐,右边补4个空格输出123.45;%.2f保留n的值2为小数后按实际输出123.45。

图2-7 例2.3程序运行结果

(2)格式化输入函数scanf()

scanf()的功能是按指定格式从键盘读入数据,存入地址表指定的存储单元中,并按回车键结束。

1)格式字符串

格式字符串包括格式指示符和普通字符两部分。

格式指示符与printf()的格式指示符相似:%d表示带符号十进制整数。%f表示带符号十进制实数形式,%c表示一个字符。

普通字符在输入数据时,必须按原样一起输入。

2)输入项地址表列

输入项地址表列由若干个输入项地址组成,相邻2个输入项地址之间用逗号分开。输入项地址一般由取地址运算符&和变量名组成,即:&变量名。例如:

其功能是从键盘上输入两个整数分别存入变量x和y的存储单元中,即输入两个整数分别赋给变量x和y。若x=3,y=5,则程序运行时在键盘上输入数据为:3,5↙(回车键)。

注意: 3和5之间一定要有逗号隔开,因为格式字符串中的两个%d之间是用普通字符逗号隔开的,普通字符必须按原样输入。另外,地址符号不能掉,即不能写成scanf("%d,%d",a,b);。

如果格式指示符之间没有普通字符分隔,输入数据时可用空格、回车键或Tab作为分隔符。例如:

同样x=3,y=5,则程序运行时在键盘上输入数据可以是:3 5↙,也可以是3↙5↙,还可以是3(按Tab键)5↙。

【例2.4】 格式化输入输出。

程序运行结果如图2-8所示。

图2-8 例2.4程序运行结果

(3)字符输出函数putchar()

putchar()的功能:在显示器上输出单个字符。

调用格式:

函数参数c,可以是字符变量或整型变量或字符常量,也可以是一个转义字符。例如:

注意: putchar()一次只能输出一个字符。

(4)字符输入函数getchar()

getchar()的功能:从键盘上输入一个字符。只接收单个字符,输入数字也按字符处理。输入多于一个字符时,只接收第一个字符。输入单个字符后,必须按一次回车,计算机才接收输入的字符。

调用格式:

输入的字符可以赋给一个字符变量或整型变量,构成赋值语句,也可以不赋给任何变量,而作为表达式的一部分。

【例2.5】 字符输入输出函数。

程序运行结果如图2-9所示。

图2-9 例2.5程序运行结果 w9uAaTwfWVKQGRPK3WOwSEh224NWiLiVoeKMNynNrKRxLLreOHW2oMIa8FRjvJ7+

点击中间区域
呼出菜单
上一章
目录
下一章
×