美文网首页工作生活C语言
C语言 第3节 运算符和表达式

C语言 第3节 运算符和表达式

作者: 小超_8b2f | 来源:发表于2019-07-04 16:16 被阅读0次
    基本输入和输出函数的用法

    printf() -- 将变量的内容输出到显示器上
    四种用法:

    1. printf("字符串\n");
    2. printf("输出控制符", 输出参数);
    3. printf("输出控制符1 输出控制符2......", 参数1,参数2......);
    #i存储的是二进制代码010101,而不是你看到的15
    #ps: %d告诉printf()函数将变量i的二进制代码以十进制方式读取并显示
    int i = 15; 
    printf("%d", i);
    int j = 3;
    printf("%d\n",i,j); // 输出结果是15,没报错,3被忽略了
    
    int x = 47;
    printf("%x\n" , x);    //2f
    printf("%X\n" , x);    //2F
    printf("%#x\n" , x);  //0x2f
    printf("%#X\n" , x);  //0X2F  推荐使用
    
    控制符 意义
    %d 十进制 int short
    %o 八进制 int short long
    %c 字符
    %X & %x
    %#X %#x
    十六进制 int short long
    VS OK,gcc不OK
    %p 地址(十六进制)
    gcc VS 都OK
    %ld long
    %f float
    %lf double
    %c char
    %s
    为什么需要输出控制符?
    1. 0101组成的代码本身没有任何含义,既可以表示数据,也可以表示指令,看你如何解读。
    2. 如果0101组成的代码是数据,那么同样的0101代码组合以不同的输出格式输出就会有不同的输出结果。
      scanf()

    二、scanf()

    两种用法:

    1. scanf("输入控制符", 输入参数);
      功能:将键盘输入的字符转化为输入控制符锁规定的格式的数据,然后存入以输入参数的值为地址的变量中
    2. scanf("非输入控制符 输入控制符", 输入参数);
      功能:功能:将键盘输入的字符转化为输入控制符锁规定的格式的数据,然后存入以输入参数的值为地址的变量中
      非输入控制符必须原样输入
    #include <stdio.h>
    
    int main(void){
      int i, j, k;
      scanf("%d", &i);  //&i表示i的地址,&是一个取地址符
      scanf("m%d", &i); //m123对,123错,m123n对,输出123  
      printf("i = %d\n" , i);
      
      printf("请输入三个数字,以逗号分隔:");
      scanf("%d,%d,%d", &i, &j, &k);
      printf("i = %d, j = %d, k = %d\n", i, j , k);
      scanf("%d\n", &j); //这样写不好,不敲\n不能结束
      return 0;
    }
    
    #include <stdio.h>
    
    int main(void){
      int i;
      char ch;
      scanf("%d", &i);  //&i表示i的地址,&是一个取地址符
      printf("i = %d\n" , i);
      
    //解决下面注释行的错误问题,将前面遗留的错误数据全部清除掉
      while((ch = getchar()) != '\n' )
          continue; 
    
    //输入123m 会把123赋值给i,然后m赋值给j,但是m不是%d,所以报错。
      int j;
      scanf("%d", &j);  //&i表示i的地址,&是一个取地址符
      printf("j = %d\n" , j);
      return 0;
    }
    

    123m可以:123 给i m给ch

      int i;
      char ch;
      scanf("%d", &i);
      printf("i = %d\n" , i);
      scanf("%c", &ch); 
      printf("i = %d\n" , i);
    

    如何写出高质量的scanf代码?

    1. 使用scanf之前最好用printf给出提示输入什么样的字符
    2. scanf中尽量不要带非输入控制符,尤其不要有\n
    3. 应该编写代码对用户的非法输入做适当的处理【非重点】
      while((ch = getchar()) != '\n' )
      continue;

    相关文章

      网友评论

        本文标题:C语言 第3节 运算符和表达式

        本文链接:https://www.haomeiwen.com/subject/majwcctx.html