printf 中的格式問題

2021-07-22 05:46:12 字數 1324 閱讀 8752

本文例項採用vs2010驗證。

printf()函式在控制台應用程式中經常用到,其原型如下:

int printf(

const char *format [,

argument]...

)

針對整型、浮點數、字串中的format,現總結如下,以作備忘。

//對於整型和字串型資料,x代表資料總共佔據的空間長度,當其小於輸出資料本身的長度時,按原資料輸出;當其大於輸出資料本身長度時,用空格補充。通過%之後有               //無「-」判斷資料左對齊還是右對齊

printf("%xd",666);

printf("%xs","abc");

//對於浮點數,除具有前述特點外,還應注意,這種輸出格式下,浮點數小數點之後總是佔據6位(以0補充),另外小數點也佔據一位,故而原資料可以看作6.660000,總共    //占有8位,再用前述規則判斷。

printf("%xf",6.66);

//x代表輸出資料佔據的空間長度,y代表輸出資料的精度,當y《原資料長度時,按原資料輸出;x>y>原資料長度時,將原資料用0補充至y長度;當y>x且y>原資料長度時,將原

//資料用0補充至y長度輸出

printf("%x.yd",666);

//x代表輸出資料佔據的空間長度,y代表輸出資料的精度,當y《原資料長度時,將原資料從左至右擷取y長度輸出;y>原資料長度時,將原資料輸出,總長度取決於x和原資料

//長度

printf("%x.ys","abc");

//x代表輸出資料佔據的空間長度,y代表輸出資料小數點後的長度,當y《原資料小數點後資料長度時,將小數點後的資料長度截至y輸出(舍位還是進1有待考慮,我驗證的是       //四捨六入,若是5則先看其後有沒有資料,有的話進製,沒有的話看5前面的資料,為奇數捨去,為偶數進製。這和普遍約定的「四捨六入五成雙」有點出入);當y>原資料小      //數點後資料長度時,將小數點後的資料長度用0補充至y輸出

printf("%x.yf",6.66);

**如下:

// _printf_.cpp : 定義控制台應用程式的入口點。

//#include "stdafx.h"

int _tmain(int argc, _tchar* argv)

輸出結果如下:

暫且總結這樣的規律:整型資料不能改變其值,但是可以左邊補0;字串資料可以截斷但是不能新增別的字元補充長度;輸出資料的長度需要綜合考慮輸出精度y、原資料長度以及給定長度x。

本人也是初學c++,文中可能會有錯誤,總結也不夠好,希望大家多多指導,共同進步!

JAVA中Printf支援的格式

f 格式 用來輸出實數 包括單 雙精度 以小數形式輸出。有以下幾種用法 f 不指定寬度,整數部分全部輸出並輸出6位小數。m.nf 輸出共佔m列,其中有n位小數,如數值寬度小於m左端補空格。m.nf 輸出共佔n列,其中有n位小數,如數值寬度小於m右端補空格。radius 163.16 area 3.1...

JAVA中Printf支援的格式

f 格式 用來輸出實數 包括單 雙精度 以小數形式輸出。有以下幾種用法 f 不指定寬度,整數部分全部輸出並輸出6位小數。m.nf 輸出共佔m列,其中有n位小數,如數值寬度小於m左端補空格。m.nf 輸出共佔n列,其中有n位小數,如數值寬度小於m右端補空格。radius 163.16 area 3.1...

printf 的格式字元

printf 的格式字元 d格式符 用來輸出十進位制整數 d 按整型資料的實際長度輸出 md 使輸出長度為m,如果資料長度小於m,則左補空格,如果大於m,則輸出實際長度 ld 輸出長整型資料 o格式符 以八進位制形式輸出整數 x格式符 以十六進製制形式輸出整數 u格式符 用來輸出unsigned型資...