C语言控制台应用中获取用户输入主要靠scanf()函数。在这本以C++作为主线的程序设计教材里,scanf()函数并非必须介绍的内容,故以在线扩展阅读的形式提供。

版权声明

本文可以在互联网上自由转载,但必须:注明出处(作者:海洋饼干叔叔)并包含指向本页面的链接。

本文不可以以纸质出版为目的进行改编、摘抄。

C语言控制台应用中获取用户输入主要靠scanf()函数,示例如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
//Project - CInput
#include <stdio.h>
#include <math.h>

int main() {
int iAge = 0,iHeight = 0;
float fWeight = 0;

printf("Please input your age, weight(kg):\n");
scanf("%d,%f",&iAge,&fWeight);

printf("Please input your height(cm):\n");
scanf("%d",&iHeight);

float fBMI = fWeight / pow((iHeight/100.0),2);
printf("Age = %d, Weight(kg) = %.2f, Height(cm) = %d, BMI = %.2f",
iAge,fWeight,iHeight,fBMI);

return 0;
}

上述代码的执行结果为:

1
2
3
4
5
Please input your age, weight(kg):
17,52.53
Please input your height(cm):
170
Age = 17, Weight(kg) = 52.53, Height(cm) = 170, BMI = 18.18

注:执行结果中的第2行,第4行需要操作者输入。输入时请注意格式,输入值不同,输出结果也会不同。

scanf()函数用于从控制台读取操作者的键盘输入,其格式与printf()有相似之处。它可以接受多个参数,其中第1个预期为字符串,字符串中可包含1个或者多个占位符。占位符的个数、类型以及顺序应与后续其它参数相匹配。请注意,后续其它参数通过&符号取地址,事实上传递给scanf()函数的是变量的地址。其中,占位符指定了期望获得的输入的类型和格式,地址参数则用于说明获得输入后将值传递给哪个变量。

🚩第10行:一种形象解释是,老板,订两份外卖,一份卤肉饭(%d),一份鸡汤面(%f)。送过来后,卤肉饭放2号楼门口(&iAge),鸡汤面交给小区门岗(&fWeight)。需要注意的是,本行代码的格式字符串中包含了一个逗号,意即整数和浮点数之间用逗号作分隔。输入时必须录入上述逗号。

🚩第15 ~ 17行:计算并打印了人体质量指数(Body Mass Index),其值为体重(千克)除以身高(米)的平方。