码迷,mamicode.com
首页 > 编程语言 > 详细

c语言基础 - printf函数

时间:2015-05-24 21:46:52      阅读:161      评论:0      收藏:0      [点我收藏+]

标签:

一 printf函数的介绍

  printf函数是一个标准库函数,能够以精确的格式输出程序运算的结果。

    printf函数的调用格式为:
    printf("格式控制字符串",输出项列表); 如:printf("%d,%d",a,b);

  格式字符串

   是由格式字符(包括:转换说明符、标志、域宽、精度)和普通字符组成,转换说明符和百 分号(%)一起使用,用来说明输出数据的数据类型、标志、长度和精度

  输出项列表

    可以是常量、变量和表达式,也可以没有输出项,这些输出项必须与格式控制字符串在类型 和数量上完全对应,否则,结果将不可预测。当有多个输出项时,各个输出项之间用逗号 ‘,’分隔

思考:
  int main() {

  printf(“hello”);

  printf(“world!”);

  return 0;

}

  输出结果仍为:helloworld! 

 

二 格式控制符使用说明

  printf的格式控制的完整格式:
    % - 0 m.n l或h 格式字符
   下面对组成格式说明的各项加以说明:
    %:表示格式说明的起始符号,不可缺少。

    -:有-表示左对齐输出(右侧补空格),如省略表示右对齐输出(左侧补空格)。

    0:有0表示指定空位填0,如省略表示指定空位不填。

    m.n:m指域宽,即对应的输出项在输出设备上所占的字符数。N指精度。用于说明输出的实型 数的小数位数。对数值型的来说,未指定n时,隐含的精度为n=6位。

    l或h:l对整型指long型,对实型指double型。h用于将整型的格式字符修正为short型。

 

 

  格式字符

    格式字符用以指定输出项的数据类型和输出格式。

  d格式:用来输出十进制整数。有以下几种用法: %ld:输出长整型数据。

  o格式:以无符号八进制形式输出整数。对长整型可以用"%lo"格式输出。同样也可以指定字段宽 度用“%mo”格式输出。
  例:
    main(){

    int a = -1;

    printf("%d, %o", a, a);

    }
运行结果:-1,177777 程序解析:-1在内存单元中(以补码形式存放)为(1111111111111111)2,转换为八进制数为 (177777)8。

  x格式:以无符号十六进制形式输出整数。对长整型可以用"%lx"格式输出。同样也可以指定字段 宽度用"%mx"格式输出。

  u格式:以无符号十进制形式输出整数。对长整型可以用"%lu"格式输出。同样也可以指定字段宽 度用“%mu”格式输出。

  c格式:输出一个字符。

  s格式:用来输出一个串。有几中用法
    %s:例如:printf("%s", "CHINA")输出"CHINA"字符串(不包括双引号)。

    %ms:输出的字符串占m列,如字符串本身长度大于m,则突破获m的限制,将字符串全部输出。若串 长小于m,则左补空格。
    %-ms:如果串长小于m,则在m列范围内,字符串向左靠,右补空格。

    %m.ns:输出占m列,但只取字符串中左端n个字符。这n个字符输出在m列的右侧,左补空格,注 意:如果n未指定,默认为0。

 

 

三 实型精度问题

  对于单精度数,使用%f格式符输出时,仅前7位是有效数字,小数6位.

  对于双精度数,使用%lf格式符输出时,前15位是有效数字,小数6位

  float double 二进制有效位数 24位 53位

  十进制有效位数 7位 15位

  有效数字的位数与指定输出的小数位数(%.7f)是两码事。

  “有效数位为7”:是指此数据从第一个非零数字开始,误差不超过本数位半个单位的、精确可信 的数位是7位(包括小数点前的非零数位)。

  %.7f:是指输出此数据的时候,小数点之后要显示7位数字(但是如果小数点前还有一些非零数 位,那么小数点后的这7位并不能保证都是精确可信的有效数位,) 

  

 

   

 

  

c语言基础 - printf函数

标签:

原文地址:http://www.cnblogs.com/Qinsp/p/4526405.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!