scanf()——通过键盘将数据输入到变量中
2种用法
1)scanf("输入控制符", 输入参数);
将从键盘输入的字符转化为输入控制符所规定格式的数据,然后存入以输入参数的值为地址的变量中。
/*
scanf()的用法1
*/
#include<stdio.h>
int main(void)
{
int i;
printf("请输入i的值:");
scanf("%d", &i); // &i 表示i的地址,& 是一个取地址符
printf("i = %d\n", i);
return 0;
}
// 运行结果
/*
请输入i的值:123
i = 123
请按任意键继续. . .
*/
2)scanf("非输入控制符 输入控制符", 输入参数);
非输入控制符必须原样输入。
/*
scanf()的用法2
*/
#include<stdio.h>
int main(void)
{
int i;
printf("请输入i的值:");
scanf("m%d", &i);
printf("i = %d\n", i);
return 0;
}
// 运行结果
/*
请输入i的值:m123
i = 123
请按任意键继续. . .
*/
如何使用scanf()编写出高质量的代码
1)使用scanf()之前最好使用printf()提示用户以什么样的方式来输入。
2)scanf()中尽量不要使用非输入控制符,尤其不要使用 \n。
3)应该编写代码对用户的非法输入做适当的处理。【非重点】
/*
编写代码对用户的非法输入做适当的处理
*/
#include<stdio.h>
int main(void)
{
int i;
scanf("%d", &i);
printf("i = %d\n", i);
char ch;
// 编写代码对用户的非法输入做适当的处理
while((ch = getchar()) != '\n')
continue;
int j;
scanf("%d", &j);
printf("j = %d\n", j);
return 0;
}
// 运行结果
/*
1abc
i = 1
2
j = 2
请按任意键继续. . .
*/