sprintf_s(buffer,"%.0f",m_nResult)
请问一下上面函数红字部分""%.of""是什么意思??还有其他几个%*的意思??以前看见书上有的,现在要用找不到了,哪位告诉下,不胜感谢......

解决方案 »

  1.   

      浮点数的打印和格式控制是sprintf 的又一大常用功能,浮点数使用格式符”%f”控制,默认保
      留小数点后6 位数字,比如:
      sprintf(s, "%f", 3.1415926); //产生"3.141593"
      但有时我们希望自己控制打印的宽度和小数位数,这时就应该使用:”%m.nf”格式,其中m 表
      示打印的宽度,n 表示小数点后的位数。比如:
      sprintf(s, "%10.3f", 3.1415626); //产生:" 3.142"
      sprintf(s, "%-10.3f", 3.1415626); //产生:"3.142 "
      sprintf(s, "%.3f", 3.1415626); //不指定总宽度,产生:"3.142"
      

  2.   

    这个好像是C语言中的基本内容了,叫做格式化字符串。给个说明给你:
    % 印出百分比符号,不转换。 
      b 整数转成二进位。 
      c 整数转成对应的 ASCII 字元。 
      d 整数转成十进位。 
      f 倍精确度数字转成浮点数。 
      o 整数转成八进位。 
      s 整数转成字串。 
      x 整数转成小写十六进位。 
      X 整数转成大写十六进位。 
      =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
      <?
      $money = 123.1
      $formatted = sprintf ("%06.2f", $money); // 此时变数 $ formatted 值为 "123.10"
      $formatted = sprintf ("%08.2f", $money); // 此时变数 $ formatted 值为 "00123.10"
      $formatted = sprintf ("%-08.2f", $money); // 此时变数 $ formatted 值为 "123.1000"
      $formatted = sprintf ("%.2f%%", 0.95 * 100); // 格式化为百分比
      ?> 
      ¢%08.2f 解释:
      %开始符
      0是 "填空字元" 表示,如果长度不足时就用0来填满。
      6格式化后总长度
      2f小数位长度,即2位
      ¢第4行值为"00123.10" 解释:
      因为2f是(2位)+小数点符号(1)+前面123(3位)=6位,总长度为8位,故前面用[填空字元]0表示,即00123.10
      ¢第4行值为"-123.1000" 解释:
      -号为反向操作,然后填空字元0添加在最后面了