scanf的用法

今天上论坛看到有人问的关于C语言代码中的问题,发现出现了在scanf函数中带有'\n',记得当年刚开始学得时候,也出现过类似的问题,然后看到有人归纳了scanf的用法,就转载到自己的blog以方便以后可以复习。

*****************************************************************************************************************************************************************************************

转载自http://blog.csdn.net/u012421456/article/details/18501309


scanf()【通过键盘将数据输入到变量中】

它有两种用法:

用法一: scanf“输入控制符”,输入参数);

功能:  将从键盘输入的字符转化为输入控制符所规定格式的数据,然后存入已输入参数的值为地址的变量中。

例如:

[plain]  view plain copy
  1. # include <stdio.h>  
  2.    
  3. int main(void)  
  4. {  
  5.     int i;  
  6.     scanf("%d",&i);//如果输入123  
  7.     printf("i=%d\n",i);//输出结果为i=123  
  8.     return 0;  
  9. }  

用法二: scanf(“非输入控制符 输入控制符”,输入参数);

功能: 将从键盘输入的字符转化为输入控制符所规定格式的数据,然后存入已输入参数的值为地址的变量中(非输入控制符必须原样输入)。

例如:

[plain]  view plain copy
  1. # include <stdio.h>  
  2.    
  3. int main(void)  
  4. {  
  5.     int i;  
  6.     scanf("m%d",&i);//输入m123正确,输入123错误  
  7.     printf("i=%d\n",i);//输入m123,输出结果为i=123  
  8.     return 0;  
  9. }  

另外,需要注意的是,使用scanf之前最好再使用printf进行操作说明(即提示用户以什么样的方式进行输入)

例如:

[plain]  view plain copy
  1. # include <stdio.h>  
  2.    
  3. int main(void)  
  4. {  
  5.     int i,j;  
  6.    
  7.     printf("请输入两个数,中间用空格或回车隔开:");  
  8.     scanf("%d %d",&i,&j);//输入的两个数之间是空格或回车  
  9.     //scanf("%d,%d",&i,&j);//输入的两个数之间是逗号(逗号是一个非输入控制符,非输入控制符必须原样输出)  
  10.     printf("i=%d j=%d\n", i, j);  
  11.    
  12.     return 0;  
  13. }  
  14.    

还有,scanf中尽量不要使用非输入控制符,尤其不要使用 \n

例如:

[plain]  view plain copy
  1. # include <stdio.h>  
  2.    
  3. int main(void)  
  4. {  
  5.     int i,j;  
  6.    
  7.     //使用scanf之前最好先使用printf进行一个操作说明,另外scanf中尽量不要使用非输入控制符,尤其不要用\n  
  8.     printf("请输入两个值,中间用空格或回车隔开:");  
  9.     //scanf("%d %d\n",&i,&j);//在scanf中不要使用\n,这样不好  
  10.     scanf("%d %d",&i,&j);//输入的两个数之间是空格或回车  
  11.     //scanf("%d,%d",&i,&j);//输入的两个数之间是逗号              逗号是一个非输入控制符,非输入控制符必须原样输出  
  12.   
  13.     printf("i=%d j=%d\n", i, j);  
  14.    
  15.     return 0;  
  16. }  

最后,为了防止当程序中有多个输入时,用户在前边的输入有误导致影响到下面的输入,我们可以在输入的后边添加一个

while ( (ch=getchar()) != '\n')

continue;   

例如:

[plain]  view plain copy
  1. # include <stdio.h>  
  2.    
  3. int main(void)  
  4. {  
  5.     int i;  
  6.     char ch;//添加字符数据  
  7.    
  8.     scanf("%d",&i);  
  9.     printf("i = %d\n",i);  
  10.    
  11.     while ( (ch=getchar()) != '\n')//把用户前边的非法输入消除!!!  
  12.     continue;                      //重点!  
  13.     int j;  
  14.     scanf("%d",&j);  
  15.     printf("j=%d",j);  
  16.    
  17.     return 0;  
  18. }  

好了, 以上就是scanf的基本用法 ,第一次写博客感觉有些吃力,相信以后会好一些

 【所有代码均在window系统下VC6.0下运行通过】

(如有错误,敬请指正)


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值