浪子荡秋千

基本的输入和输出函数的用法

printf的用法

printf() --将变量的内容输出到显示器上

四种用法

  1. printf("字符串"); ------ 双引号内部可以是英文、中文等任意字符

  2. printf("输出控制符",输出参数);

  3. printf("输出控制符1 输出控制符2...",输出参数1,输出参数2,...);

    输出控制符和输出参数的个数要一一对应

     1  # include<stdio.h>
     2  3  int main()
     4  {
     5  6      int i = 100;
     7      printf("%x",i);//输出结果为64 
     8      printf("%#x"i);//输出结果为0x64     
     9      printf("%#X",i);//输出结果为0X64     推荐这种写法
    10      
    11      return 0;
    12      
    13  }
  4. printf("输出控制符 非输出控制符",输出参数); 非输出控制符内容会原样输出,不会改变

     1 # include<stdio.h>
     2  3  int main()
     4  {
     5      
     6      int i , j;
     7      i = 3;
     8      j = 5;
     9      printf("i = %d,j = %d\n",i,j);//为了程序易读性,可以这么写,输出结果为i = 3,j = 5
    10      
    11      return 0;
    12      
    13  }

    输出控制符如下:

    • %d --- int

    • %ld --- long int

    • %c --- char

    • %f --- float

    • %lf --- double

    • %x(X或者%#X); --- int 或long int 或short int

    • %o --- 同上

    • %s --- 字符串

为什么需要输出控制符

  • 01组成的代码可以表示数据也可以表示指令

  • 如果01组成的代码表示的是数据的话,那么同样的01代码组合以不同的格式输出就会有不同的输出结果

测试:

如果在printf参数中,输入参数加入取地址符&,那么就会输出该变量地址的十进制数

 1  # include <stdio.h>
 2  3  int main()
 4  {
 5      int i;
 6      
 7      scanf("%d",&i);
 8      
 9      printf("i = %d",&i);
10      return 0;
11   } 
12   /*
13   如果在printf参数中,输入参数加入取地址符&,那么就会输出该变量地址的十进制数
14   
15   结果为 : 
16   输入字符为2
17  i = 6487628
18  --------------------------------
19   */ 

scanf的用法

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

两种用法:

  1. scanf("输入控制符",输入参数);

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

  2. scanf("非输入控制字符 输入控制符",输入参数);

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

如何使用scanf编写出高质量的代码

  1. 使用scanf之前最好先使用prinf提示用户以什么样的方式来输入,便于让用户知道需要做什么

  2. scanf中尽量不要使用非输入控制符(因为只有输入对应非输入控制符,才能输出,并且无实际意义,降低了使用体验),尤其是不要用\n(因为需要输入\n,指令才会执行)

     
     1 # include <stdio.h>
     2  3  int main()
     4  {
     5      int i;
     6      char ch;
     7  8      scanf("%d",&i);
     9      printf("i = %d\n",i);
    10      scanf("%c",&ch);
    11      printf("ch = %c\n",ch);
    12      
    13      return 0;
    14   } 
    15   /*
    16   C语言中规定,解析到正确格式的字符后转换对应格式存入变量,解析失败放回输入,再次解析时,从失败的位置重新读取 
    17   
    18   1.如果输入1,那么输出为i = 1;
    19   
    20   2.如果输入m,那么就会输出 i = 0
    21   
    22   3.如果输入1m,那么输出为 i = 1,因为编译器识别到一串字符后,就会去一一解析,
    23      当识别到与输入控制符不一样字符后,就停止解析(然后m不会丢弃,如果下面有一个char的打印,那么就会打印输出),然后将前面的字符转换成相应格式存入变量中 
    24   */
    25  
  3. 应该编写代码对用户的非法输入做适当的处理(非重点)------此条指令在DEC -C++无法执行,在研究

    while( (ch=getchar())! ='\n') continue;

posted on 2021-04-01 22:19  浪子荡秋千  阅读(458)  评论(0编辑  收藏  举报

导航