zoukankan      html  css  js  c++  java
  • 转:scanf的用法

    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 ",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 ",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 ", i, j);
    11.  
       
    12.  
      return 0;
    13.  
      }

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

    例如:

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

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

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

    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 ",i);
    10.  
       
    11.  
      while ( (ch=getchar()) != ' ')//把用户前边的非法输入消除!!!
    12.  
      continue; //重点!
    13.  
      int j;
    14.  
      scanf("%d",&j);
    15.  
      printf("j=%d",j);
    16.  
       
    17.  
      return 0;
    18.  
      }

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

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

  • 相关阅读:
    【转载】apache kafka系列之-监控指标
    自动恢复被挂掉的hbase region server
    beeline连接hive server遭遇MapRedTask (state=08S01,code=1)错误
    sqoop-1.4.6安装配置
    spark RDD的元素顺序(ordering)测试
    【转载】常用Maven插件介绍
    【转载】Spark SQL 1.3.0 DataFrame介绍、使用
    SparkSQL之数据源
    spark集成hive遭遇mysql check失败的问题
    hive启动报错: Found class jline.Terminal, but interface was expected
  • 原文地址:https://www.cnblogs.com/jacklong-yin/p/9408529.html
Copyright © 2011-2022 走看看