美文网首页
printf函数--小问题未解决

printf函数--小问题未解决

作者: 排骨炖豆角不要豆角 | 来源:发表于2018-03-19 16:48 被阅读0次

    使用语言的过程实际上就是输入---处理---输出,本次主要学习标准化输出printf() 标准化输出scanf() 标准化读入以及进一步简单的控制因素等。

    printf() 函数

    printf()函数是包含在头文件的stdio.h中,使用的格式主要为:

    printf("格式化字符串", 输出的参数)
    

    printf格式化输出的一般形式

    %c: 输出单个字符
    %d: 输出十进制形式的整数
    %e/E: 输出指数形式的单双精度实数,默认是6位小数
    %f: 输出小数形式的单双精度实数,默认是6位小数
    %o: 以八进制形式输出无整数符号
    %s: 输出字符串,参数为char的指针(什么是指针?)
    %u: 输出十进制形式的无符号整数
    %x/X: 输出十六进制的无符号整数
    %%: 表示输出的是百分号
    

    printf输出的应用实例

    • 简单输出整数
    printf("%d",10)
    
    • 依据最小宽度输出
      %nd:其中n是具体的阿拉伯数字,这是规定最小的输出的宽度。
    #include <stdio.h>
    void main(void)
    {
      int x=1,y=2;
      printf("%4d%4d\n",x,y);   /* 测试输出的两个参数是不是需要分开*/
      float z=-200;
      printf("%10ld\n",z);    /* 发现当定义的数据类型和需要的类型不一致,格式化输出不会报错 */
    }
    

    例如上面的例子,输出的结果是:

       1   2
    140424125706240  /* 显然这个是错误的输出形式 */
    
    • char函数输出字符---存在疑惑
      本来打算使用char 输出单个字符的使用,但是依据代码:
    #include <stdio.h>
    int main()
    {
    char c="d";
    printf("%s\n",c);
    }
    上述代码总是输出错误,我是用gcc编译的,然后报错语句是:
    P05.printf.c: In function ‘main’:
    P05.printf.c:5:8: warning: initialization makes integer from pointer without a cast [enabled by default]
     char c="d";
            ^
    
    通过搜索,发现一种写法是可以通过的,但是具体的原因是不清楚的:
    #include <stdio.h>
    
    int main () {
       char greeting[] = "H";
       printf("Greeting message: %s\n", greeting );
       return 0;
    }
    

    显然上面的过程存在一个不懂的地方,目前还是不能够解决掉,等等看后面是否能够解决。

    • 输出浮点数
      这样的输出需要注意的是单精度浮点数双精度浮点数是不同的,其中单精度浮点数有效位数为7位,若一个数字太大,有8位整数部分和6位小数部分,那么两个这样的数相加,他们的个位实际上就是不准的了,这样会产生很大的计算误差。

    双精度浮点数的有效的位数是16位,所以这样产生的数字就是16个数字时准确的。

    此外输出的过程还可以通过%e选择科学技术法的形式,非常有用。

    两个字符串的输出方式

    • puts()
    • putchar()
      其中,puts是可以输出字符串带上换行符。putchar也是输出字符串的,但是我看,仅为输出单个字符串。没什么特别。

    ** notes:本次书写中有个输出单个字符串的char的问题一直未解决。。需要进一步学习。

    相关文章

      网友评论

          本文标题:printf函数--小问题未解决

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