https://blog.csdn.net/u012421456/article/details/18501309
scanf()【通过键盘将数据输入到变量中】
它有两种用法:
用法一: scanf(“输入控制符”,输入参数);
功能: 将从键盘输入的字符转化为输入控制符所规定格式的数据,然后存入已输入参数的值为地址的变量中。
例如:
-
-
-
int main(void)
-
{
-
int i;
-
scanf("%d",&i);//如果输入123
-
printf("i=%d ",i);//输出结果为i=123
-
return 0;
-
}
用法二: scanf(“非输入控制符 输入控制符”,输入参数);
功能: 将从键盘输入的字符转化为输入控制符所规定格式的数据,然后存入已输入参数的值为地址的变量中(非输入控制符必须原样输入)。
例如:
-
-
-
int main(void)
-
{
-
int i;
-
scanf("m%d",&i);//输入m123正确,输入123错误
-
printf("i=%d ",i);//输入m123,输出结果为i=123
-
return 0;
-
}
另外,需要注意的是,在使用scanf之前最好再使用printf进行操作说明(即提示用户以什么样的方式进行输入)
例如:
-
# include <stdio.h>
-
-
int main(void)
-
{
-
int i,j;
-
-
printf("请输入两个数,中间用空格或回车隔开:");
-
scanf("%d %d",&i,&j);//输入的两个数之间是空格或回车
-
//scanf("%d,%d",&i,&j);//输入的两个数之间是逗号(逗号是一个非输入控制符,非输入控制符必须原样输出)
-
printf("i=%d j=%d ", i, j);
-
-
return 0;
-
}
还有,scanf中尽量不要使用非输入控制符,尤其不要使用
例如:
-
# include <stdio.h>
-
-
int main(void)
-
{
-
int i,j;
-
-
//使用scanf之前最好先使用printf进行一个操作说明,另外scanf中尽量不要使用非输入控制符,尤其不要用
-
printf("请输入两个值,中间用空格或回车隔开:");
-
//scanf("%d %d ",&i,&j);//在scanf中不要使用 ,这样不好
-
scanf("%d %d",&i,&j);//输入的两个数之间是空格或回车
-
//scanf("%d,%d",&i,&j);//输入的两个数之间是逗号 逗号是一个非输入控制符,非输入控制符必须原样输出
-
-
printf("i=%d j=%d ", i, j);
-
-
return 0;
-
}
最后,为了防止当程序中有多个输入时,用户在前边的输入有误导致影响到下面的输入,我们可以在输入的后边添加一个
while ( (ch=getchar()) != ' ')
continue;
例如:
-
-
-
int main(void)
-
{
-
int i;
-
char ch;//添加字符数据
-
-
scanf("%d",&i);
-
printf("i = %d ",i);
-
-
while ( (ch=getchar()) != ' ')//把用户前边的非法输入消除!!!
-
continue; //重点!
-
int j;
-
scanf("%d",&j);
-
printf("j=%d",j);
-
-
return 0;
-
}
好了, 以上就是scanf的基本用法 ,第一次写博客, 感觉有些吃力,相信以后会好一些.
【所有代码均在window系统下VC6.0下运行通过】