您好,登錄后才能下訂單哦!
本篇內容介紹了“C語言printf()輸出格式是什么”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
主要說明格式字符串的基本思想。
格式字符串綱要
[標志] ?? [輸出最少寬度] ?? [.精度] ?? [長度] ?? 類型 \fcolorbox{#ffae42}{#2E8B57}{\textcolor{White}{[標志]\;[輸出最少寬度]\;[.精度]\;[長度]\;類型}} [標志][輸出最少寬度][.精度][長度]類型
因為權重是自右向左,所以先從右側往左介紹,有時這個很重要,比如字符類型進行修飾總讓人很疑惑。
類型稱為轉換類型更合適;
長度 : 并非確切長度,它僅僅是修飾符,h代表短型,l代表長型,如果用ll雖然也可以,但目前很多編譯器已經開始提示用其它替代方案;
[.精度] : 浮點型小數位數未指定精度時,隱含的精度為6位。如果是字符串,只取字符串中左端設置精度數 字符(n個字符,精度為n);
輸出最少寬度 : 如果實際長度低于設置,那么填充就起作用;
標志的功能主要是是對齊填充補充 ,主要為左對齊(-) 、右對齊(省略既是右對齊,字符串類型可以用+)、 補充(#)、空格(若符號為正,則顯示空格,負則顯示"-")、填充(0);
轉換說明A | 備注 | 轉換說明B | 備注 |
---|---|---|---|
%d或%i | 有符號十進制整數 | %u | 無符號十進制整數 |
%f | 浮點數(包括float和doulbe) | %e(%E) | 浮點數[e-(E-)記數法] |
%g(%G) | 浮點數不顯無意義的零"0",甚至小數點 | ||
%c | 字符,實際上是int,可以用%d打印 | %s | 字符串 |
%x(%X) | 十六進制無符號整數 | %o | 八進制無符號整數 |
%a(%A) | 浮點數、十六進制數字和p-(P-)記數法(C99),p代表2,類似于e代表10 | ||
%p | 指針 | %% | 百分號自身輸出 |
h 代表short,一般用%hd
l 代表long,可以修飾%ld 、%lu、 %lf、%lo,修飾%lc,因為c存儲的是int型,可以用l修飾,但權重自右向左,還是會輸出字符,而不是數字。
ll 代表long long,目前很多編譯器已經不太推薦用ll修飾了,他們有專業的推薦。
%zd專門為sizeof strlen() 等size_t 返回類型準備的格式。
采用一段代碼說明更實際
//加上F防止隱性轉化,因為代碼風格中用小寫字母l會被誤認為數字1,所以統一采用大寫的L、F float PI = 3.1415F; //先優先精度(.14)這就占了三位,在向左設置顯示寬度,沒有設置對齊方式,那么默認右側對齊左側填充, //左側填充沒有設置,那么填充空格,所以顯示 □□3.14 printf("%6.2f\n", PI); //設置為0會被四舍五入,顯示3 printf("%.0f\n", PI);
//沒有設置精度,位數不夠左側填充空格,如果設置為%05d則填充0,如果設置左對齊,也不可能右側填充0 //如果是字符串填充0是無效的,只填充空格 printf("%5d \n", d);
-
: 左對齊
省略既是右對齊,字符串可以用+
0 : 填充0,只限于左側填充
#
: 對c,s,d,u類無影響;對o類,加前綴數字0;對x類,加前綴0x;對X類,加前綴0X;對e,g,f 類當結果有小數時才給出小數點。
空格 : 若符號為正,則顯示空格,負則顯示"-"
%#o,%#x這樣使用是合理的,如果在e,g,f中使用#,沒有設置精度,那么因為數據不同顯示可長可短,所以基本作為補充前綴使用。
補充和填充是有區別的,#
并不是Excel中格式設置的那些作用。
“C語言printf()輸出格式是什么”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。