程序是人机交互的媒介,有输出必然也有输入。在C语言中,有多个函数可以从键盘获得用户输入:
scanf():和 printf() 类似,scanf() 可以输入多种类型的数据。
getchar()、getche()、getch():这三个函数都用于输入单个字符。
gets():获取一行数据,并作为字符串处理。
scanf() 是最灵活、最复杂、最常用的输入函数,但它不能完全取代其他函数,大家都要有所了解。
scanf()函数
scanf 是 scan format 的缩写,意思是格式化扫描,也就是从键盘获得用户输入。我们先来看一个例子:
#include
#include
int main()
{
int a, b, c, d;
scanf("%d", &a); //输入整数并赋值给变量a
scanf("%d", &b); //输入整数并赋值给变量b
printf("a+b=%d\n", a+b); //计算a+b的值
scanf("%d %d", &c, &d); //输入两个整数并分别赋值给c、d
printf("c*d=%d\n", c*d); //计算c*d的值
system("pause");
return 0;
}
运行结果:
12↙
60↙
a+b=72
10 23↙
c*d=230
↙表示按下回车键。
从键盘输入12,按下回车键,scanf() 就会读取输入数据并赋值给变量 a,本次输入结束,执行下一条语句。接着给变量b赋值,也是同样的道理。
第9行代码中,我们同时输入两个整数并分别赋值给c、d。注意"%d %d"之间是有空格的,所以输入数据时也要有空格。也就是说,输入数据的格式要和控制字符串的格式一致。
scanf 和 printf 非常相似:
scanf("%d %d", &a, &b); // 获取用户输入的两个整数,分别赋值给变量 a 和 b
printf("%d %d", a, b); // 将变量 a 和 b 的是在显示器上输出。
它们都有格式控制字符串,都有变量列表。不同的是,scanf 的变量前要带一个&符号;&称为取地址符,也就是获取变量在内存中的地址。