欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

scanf函数的讲解

程序员文章站 2022-04-16 09:26:21
scanf函数的讲解 scanf("输出控制符",&变量) &是一个取地址的符号 scanf("非输出控制符,输出控制符",&变量) 在键盘上输入多个变量 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函数的时候不要轻易的添加非输出控制符,或者在前面给用户提示怎么输入数据。
    
     ------------------------------------------------
    */
    }