1. scanf 函数:
1). 作用:可以在程序运行的时候,让用户输入一个数据,然后将用户输入的数据赋值给变量;
2). 语法格式:
scanf("格式控制符",变量地址列表); //多个变量格式: scanf("格式控制符格式控制符",变量地址,变量地址); 用户在输入多个数据时,可以使用空格和回车来区分 2 个数据;
3). 简单实用步骤:
1. 先声明变量;
2. 在格式控制符中使用占位符(%d,%f,%lf,%c)来要求用户输入 1 个指定类型的数据; //想让用户输入什么类型的数据,是根据格式控制符中的占位符决定的;
3. 在后面写上要将用户输入的数据存储到哪 1 个变量的地址; 使用 & 符号来获取变量的地址
2. 案例:
int main(int argc, const char * argv[]) {
//声明变量 num
int num = 0;
//提示用户输入一个数字
printf("请输入一个数字:\n");
//使用占位符要求用户输入数据, & 符号来获取变量地址
scanf("%d",&num);
//输出 num 的值
printf("num = %d\n",num);
return 0;
}
3. 注意:
1). 如果程序没有输出信息,下方控制台不会自动弹出来;
2). scanf 函数执行原理:
1. 他是1个阻塞式函数,当执行到这个函数时候,CPU 的执行就会暂停,不会继续执行;
2. 会等待用户输入数据,当用户输入数据并按下回车,表示输入完毕;
3. 这时会将用户输入的数据赋予变量,然后继续执行后面代码;
4. 函数的格式控制符后不要加\n换行;
5. 函数后面要写 变量地址,而不是 变量;
6. 占位符和变量类型要一致;
7. 如果用户输入的数据跟变量类型不一致会出问题;
8. 函数初始时要给变量一个默认值;
9. 用户在输入数据之前,输入的空格/回车/tab 键等都会自动忽略,直到用户输入数据并按回车后处理;
4. 缓冲区:
1). 让用户输入数据时,并不是直接把这个数据赋值给变量,而是先把数据放在缓冲区,然后在从缓冲区将数据取出,赋值给变量;
2). 在执行函数时,会先检查缓冲区是否有数据;
1. 如果缓冲区没有数据,就会让用户输入数据
2. 如果缓冲区有数据,直接把数据拿出来,不会让用户输入数据;
3). 如果拿的数据类型为整形或者实型, 空格和回车会被忽略;
如果拿的数据类型为字符型,任何数据都不会忽略,会当做数据赋值;
4). 如果想赋值准确数据,就需要缓冲区没有数据,也就是在输入前需要清空缓冲区;
1. 在 scanf 函数前加入一行代码来清空缓冲区;
2. 使用 rewind(stdin); //这个代码的作用就是清空缓冲区,将缓冲区的数据全部清空;
//以上为笔记,下方为代码;
#include <stdio.h>
int main(int argc, const char * argv[]) {
//声明变量 num
int qq = 0,qqPasswd = 0;
//提示用户输入 QQ 号码
printf("请输入QQ账号:\n");
//使用占位符要求用户输入数据, & 符号来获取变量地址
scanf("%d",&qq);
//提示用户输入 QQ 密码
printf("请输入QQ密码:\n");
rewind(stdin);
scanf("%d",&qqPasswd);
//输出 QQ号码和QQ密码的值
printf("QQ号码是:%d\nQQ密码是:%d\n",qq,qqPasswd);
return 0;
}
iOS开发基础之C语言学习2-scanf函数
猜你喜欢
转载自blog.csdn.net/sdfsdfasfddsafwesd/article/details/113249014
今日推荐
周排行