https://blog.csdn.net/u012421456/article/details/18501309

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

它有两种用法:

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

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

例如:

  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(“非输入控制符 输入控制符”,输入参数);

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

例如:

  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进行操作说明(即提示用户以什么样的方式进行输入)

例如:

  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.  
    }

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

例如:

  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;

例如:

  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下运行通过】

转:scanf的用法的更多相关文章

  1. C的printf与scanf的用法

    之前没学过C语言,只学过C++,所以就来自学下C语言了,其实个人认为C与C++的区别很小,基本上就是printf与scanf这点输出和输入的区别了,如果还有什么区别的话那就是要包含的头文件是不同的.比 ...

  2. C++中printf和scanf的用法

    (一)printf的用法 printf:按格式打印,向控制台输出.print:打印 ,f:formate,格式化. 在使用printf向控制台输出时,不建议使用中文字符串,中文字符串的问题比较复杂,有 ...

  3. scanf *的用法

    scanf *的用法           char a[LEN]="12:13:14";     char i,j,k,h,l,m; sscanf(a,"%*c%*c:% ...

  4. scanf()函数用法小结

    scanf()函数是格式化输入函数,它从标准输入设备(键盘) 读取输入的信息. 其调用格式为:      scanf("<格式化字符串>",<地址表>); ...

  5. C语言: 运算符,printf,scanf的用法

    运算符/的运算结果和运算对象的数据类型有关,两个数都是in,则商就是int,取整数部分:被除数和除数中只要有一个或两个都是浮点型数据,则商也是浮点型,不去掉小数部分如:16/5 == 3:16/5.0 ...

  6. C语言中scanf()的用法!

    好文章转自:http://blog.tianya.cn/blogger/post_show.asp?BlogID=287129&PostID=3668453 scanf详解 scanf 原型: ...

  7. scanf函数用法小记

    By francis_hao    Aug 26,2017   scanf – 输入格式转换   概述 #include <stdio.h>int scanf(const char *fo ...

  8. getchar() getch() getche() gets() puts() scanf()的用法及区别

    getchar() putchar(ch) scanf()   头文件stdio.h getch() getche()   头文件conio.h gets() puts()    头文件stdio.h ...

  9. return 的用法 初探

    #include<stdio.h> int imin(int ,int ); int main() { int evil1,evil2; ) //注意 第二个%d后面不能有空格,大概这就是 ...

随机推荐

  1. java EE技术体系——CLF平台API开发注意事项(3)——API安全访问控制

    前言:提离职了,嗯,这么多年了,真到了提离职的时候,心情真的很复杂.好吧,离职阶段需要把一些项目中的情况说明白讲清楚,这篇博客就简单说一下在平台中对API所做的安全处理(后面讲网关还要说,这里主要讲代 ...

  2. 一句话配置mongodb

    一.安装mongodbmongodb-win32-x86_64-2008plus-ssl-3.2.9-signed.msi 二.以管理员身份,启动cmd命令mongod.exe --logpath & ...

  3. NOIP2017赛前模拟1:总结

    题目: 1.造盒子 题目描述 企鹅豆豆收到了面积为 K 的一块橡皮泥.但是他没有合适的盒子来装下这个橡皮泥.所以他打算造一个盒子. 制造台是有方形网格的平台,每个小正方形边长为 1 .现在豆豆有两类木 ...

  4. 常用的Java基本代码汇总

    1.字符串和整型的相互转换 String a= String.valueOf(2); int i = Integer.parseInt(a); 2. 向文件末尾添加内容 BufferedWriter ...

  5. Python Base One

    //this is my first day to study python, in order to review, every day i will make notes (2016/7/31) ...

  6. bzoj 1003 [ZJOI2006]物流运输(最短路+dp)

    [ZJOI2006]物流运输 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 8973  Solved: 3839[Submit][Status][Di ...

  7. Wmap5 测试80端口 Your port 80 is actually used by :Server: Microsoft-HTTPAPI/2.0

    问题:win7系统! 在wamp5的apache启动不了: 目录下点击[测试80端口]的时候提示:Your port 80 is actually used by : Server: Microsof ...

  8. (转):从内核代码聊聊pipe的实现

    来源: http://luodw.cc/2016/07/09/pipeof/ 用linux也有两年多了,从命令,系统调用,到内核原理一路学过来,我发现我是深深喜欢上这个系统:使用起来就是一个字&quo ...

  9. du 查看 資料夾 佔用空間

    查看 目前目錄使用的空間大小 du -h --max-depth=0 -h, --human-readable 查看 目前及下一屠的目錄 使用的空間大小 du -h --max-depth=1

  10. 微信JSSDK分享功能详解

    本文以微信分享到朋友圈,分享给微信好友为例为参考,进行调用测试,想添加其他的功能,自行查看开发人员文档即可 工欲善其事,必先利其器,好好利用下边的帮助工具,都是腾讯给开发人员的工具 1.微信开发者说明 ...