scanf函数的讲解

scanf函数的讲解

  • scanf("输出控制符",&变量) &是一个取地址的符号

    # include<stdio.h>
    int main(void)
    {
    int i;
    
    printf("请输入...\n");
    scanf("%d",&i);
    printf("i = %d\n",i);
    
    return 0;
    
    /*
    -----------vc++6.0中输出的结果------------------
    请输入...
    12mmmmmmm
    i = 12
    
    请输入...
    12
    i = 12
    
    请输入...
    mmm344343434
    i = -858993460
    
    心得:
    
    为什么会出现这样得结果呢?原来C语言在执行输入得时候不满足输出控制符得数据都不会录入。所以第二个后面得mmmm就直接省略了。
    
    而如果mmmm在前面得话,系统就会认为你的数据都是错得,就不会把值赋给变量。
    
     ------------------------------------------------
    */
    }
    
  • scanf("非输出控制符,输出控制符",&变量)

    # include<stdio.h>
    int main(void)
    {
    int i;
    
    printf("请输入...\n");
    scanf(",%d",&i);
    printf("i = %d\n",i);
    
    return 0;
    
    /*
    -----------vc++6.0中输出的结果------------------
    请输入...
    12
    i = -858993460
    
    请输入...
    ,2
    i = 2
    
    请输入...
    【】3
    i = -858993460
    
    心得:
    
    为什么会出现这样得结果呢?
    
    scanf函数中非输出控制符都要原封不动得输入,否则就会报错。
     ------------------------------------------------
    */
    }
    
  • 在键盘上输入多个变量 scanf("输出控制符输出控制符" ,&变量,&变量)

    # include<stdio.h>
    int main(void)
    {
    int i,j;
    
    printf("请输入...\n");
    scanf("%d,%d",&i,&j);
    printf("i = %d,j=%d\n",i,j);
    
    return 0;
    
    /*
    -----------vc++6.0中输出的结果------------------
    请输入...
    1,2
    i = 1,j=2
    
    请输入...
    12
    i = 12,j=-858993460	
    
    请输入...
    1;2
    i = 1,j=-858993460
    
    心得:
    
      这个和前面讲解的是一样的。任何的非输出控制符都要在输入的时候输入,不然很可能就会进行报错。
    
      第二个输入就是没有在12之间输入非输出控制符导致系统将12认为是一个数赋值给了变量i, 而变量j没有赋值出现垃圾数据
    	
      所以说在使用scanf函数的时候不要轻易的添加非输出控制符,或者在前面给用户提示怎么输入数据。
    
     ------------------------------------------------
    */
    }
    
posted @ 2020-03-14 13:43  江湖混子  阅读(477)  评论(0编辑  收藏  举报