// scanf函数
#include <stdio.h>
void test1() {
// 1.提示用户输入数据
printf("请输入一个整数:");
// 2.接收用户输入的数据
int a;
// &a代表变量a的地址
// 输入完毕后敲回车
scanf("%d", &a);
// 3.计算a的平方
printf("%d的平方为:%d", a, a * a);
}
void test2() {
// 1.提示用户输入数据
printf("请输入两个整数:");
// 2.接收用户输入的数据
int a, b;
// &a代表变量a的地址
// 输入完毕后敲回车
scanf("%d %d", &a, &b);
// 3.计算a+b(空格=空格+回车+tab键)
printf("%d + %d = %d", a, b, a + b);
}
int main(int argc, const char * argv[])
{
test2();
return 0;
}
=================================
1. 简介
这也是在stdio.h中声明的一个函数,因此使用前必须加入#include<stdio.h>。调用scanf函数时,需要传入变量的地址作为参数,scanf函数会等待标准输入设备(比如键盘)输入数据,并且将输入的数据赋值给地址对应的变量
2. 简单用法
int age;
scanf("%d", &age);
scanf函数时,会等待用户的键盘输入,并不会往后执行代码。scanf的第1个参数是"%d",说明要求用户以10进制的形式输入一个整数。这里要注意,scanf的第2个参数传递的不是age变量,而是age变量的地址&age,&是C语言中的一个地址运算符,可以用来获取变量的地址
输入完毕后,敲一下回车键,目的是告诉scanf函数我们已经输入完毕了,scanf函数会将输入的值赋值给age变量
3. 其他用法
1> 用scanf函数接收3个数值,每个数值之间用中划线-隔开
scanf("%d-%d-%d",&a, &b, &c);
3个%d之间是用中划线-隔开的,因此我们在每输入一个整数后都必须加个中划线-,比如这样输入,不然在给变量赋值的时候会出问题
注意:数值之间的分隔符是任意的,不一定要用中划线-,可以是逗号、空格、星号*、井号#等等,甚至是英文字母
// 逗号,
scanf("%d,%d,%d",&a, &b, &c); // 输入格式:10,14,20
// 井号#
scanf("%d#%d#%d",&a, &b, &c); // 输入格式:10#14#20
// 字母x
scanf("%dx%dx%d",&a, &b, &c); // 输入格式:10x14x20
2> 用scanf函数接收3个数值,每个数值之间用空格隔开
scanf("%d %d%d", &a, &b, &c);
3个%d之间是用空格隔开的,我们在每输入一个整数后必须输入一个分隔符,分隔符可以是空格、tab、回车
4. 注意
scanf的第一个参数中不要包含\n,比如scanf(“%d\n”,&a); 这将导致scanf函数无法结束