日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

printf函数的格式修饰符

發布時間:2024/9/27 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 printf函数的格式修饰符 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文介紹printf函數的一些特殊的格式控制修飾符

1、域寬修飾符 –> 數字
對所有格式控制符都有效,即便是%%也不例外
寬度修飾符出現在%和格式控制符之間的數字,使數據在固定區域打印。如果待打印的數值不能填滿位置,它的左側會被天上空格以滿足填滿域寬區域,這些數值是右對齊的;如果超過了給定域寬,輸出區域會調整域寬以恰好能容納該數值,而不會把該數值截斷。

#include <stdio.h>int main() {printf("%2d %2d\n", 0, 1);printf("%2d %2d\n", 2, 3);printf("%2d %2d\n", 12, 34);printf("%2d %2d\n", 123, 456);system("pause");return 0; }

2、精度修飾符 -> ”. + 數字“
①對于整數格式項%d、%o、%x和%u,精度修飾符指定了它們打印數字的最少位數,要是待打印的數值小于指定位數,那么打印該數值時會在它的前面補0,以湊足指定的位數;要是到打印的數值大于指定位數,那么指定無效,打印該數值的全部位數。

#include <stdio.h>int main() {printf("%.2d %.2d\n", 0, 1);printf("%.2d %2.d\n", 12, 34);printf("%.2d %.2d\n", 123, 456);system("pause");return 0; }

②對于%e、%E和%f格式控制符,精度修飾符指定了小數點后應該出現的數字位數,只有當精度大于0時,才會出現小數點。

#include <stdio.h> #include <math.h>int main() {double pi = 4 * atan(1.0);printf("%.0f %.1f %.3f %.10f\n", pi, pi, pi, pi);printf("%.0e %.1e %.3e %.10e\n", pi, pi, pi, pi);printf("%.0E %.1E %.3E %.10E\n", pi, pi, pi, pi);system("pause"); return 0; }

③對于%g和%G格式控制符來說,驚呆修飾符指定了打印數據中有效數字的位數,如果小數點之后沒有數字,那么小數點也不會被打印。

#include <stdio.h>int main() {printf("%.1g %.1g %.2g %.3g %.8g\n", 1 / 3.0, 10/3.0, 10 / 3.0, 10 / 3.0, 10 / 3.0);printf("%.1G %.1G %.2G %.3G %.8G\n", 1 / 3.0, 10/3.0, 10 / 3.0, 10 / 3.0, 10 / 3.0);system("pause");return 0; }

④用于%s格式控制符,指定要從相應的字符串中打印的字符個數。當指定的值小于字符串中字符個數時,只輸出字符串中的前N個字符(N為精度值),當指定的大于字符串中字符個數時,輸出的字符個數為字符串中全部字符的個數。

#include <stdio.h>int main() {int ret1 = 0;int ret2 = 0;int ret3 = 0;ret1 = printf("%.10s\n", "abcdefg");ret2 = printf("%.5s\n", "abcde");ret3 = printf("%.3s\n", "abcdefg");printf("%d %d %d\n", ret1, ret2, ret3); system("pause");return 0; }

3、標志符
①-
此標識符后必須跟有域寬才會有意義,它的作用是使指定了域寬的數據輸出時左對齊。

#include <stdio.h>int main() {printf("%5d%5d%5d\n", 1, 2, 3);printf("%-5d%-5d%-5d\n", 1, 2, 3);system("pause");return 0; }

②+
規定每個待打印的數值在輸出時都應以它的符號(“+”、“-”)作為第一個字符。

#include <stdio.h>int main() {printf("%+d\n", 1);printf("%+d\n", 0);printf("%+d\n", -1);system("pause");return 0; }

③空白字符(空格)
如果數值是非負數,就在它的前面添加一個空格。
PS:要是空白字符修飾符與+修飾符出現在一起,以+修飾符為準。

#include <stdio.h>int main() {printf("% d\n", 1);printf("% d\n", 0);printf("% d\n", -1);printf("% +d\n", 1);system("pause");return 0; }

④#
%o格式控制符在打印輸出時在數字的前面加一個0,%x或%X在打印輸出時在數字的最前面加一個0x或0X。

#include <stdio.h>int main() {printf("%#o\n", 12);printf("%#x\n", 24);printf("%#X\n",24);system("pause");return 0; }

對浮點數格式來說,#標志符要求小數必須被打印出來,即使小數點之后沒有數字,對于%g和%G來說,不會去掉數值尾綴的0.

#include <stdio.h> #include <math.h>int main() {printf("%.0f %#.0f %g %#g\n", 3.0, 3.0, 3.0, 3.0);system("pause");return 0; }

4、%n
%n與其他格式說明符號不同。不向printf傳遞格式化信息,而是用于指出函數已經打印的字符的個數,這個數被存儲在對應參數(整型指針)所指向的整數中。

#include <stdio.h>int main() {int n = 0;printf("Hello\n%n", &n);printf("%d\n", n);system("pause");return 0; }

這兒的&n就是我們存儲字符個數的整型指針。
PS:是不是趕腳有些像用scanf()給n輸入一個值

5、使用 * 替換域寬或精度值

有時候,因為數據的不同,我們可能想使用的域寬或精度值也不同,例如,字符數組里面每次存儲的字符個數可能是不同的,那么我們想要不管每次給的字符數是多少,都不用改變printf()函數格式控制字符串里的域寬和精度值該怎么做呢。
因為數值的長度在程序中是寫“死”的數字(magic number),那么可能我們經常會這樣來定義數組

#define MAXSISE 20 char str[MAXSIZE];

那么為了方便每次打印str里面存儲的字符時不用修改printf()函數格式控制字符串里的域寬和精度值,我們可能會這樣寫:

printf("%MAXSIZE.MAXSIZEs", str);

但是,預處理器的范圍不能作用到字符串的內部,所以這樣是不可能達到我們的期望的。
而通過一個格式修飾符 * 我們可以很巧妙的做到這一點:

#include <stdio.h> #define MAXSIZE 20int main() {char str[MAXSIZE] = "Hello world!";printf("%*.*s\n", 20, 20, str);printf("%*%", 8);system("pause");return 0; }

這兒用 * 替換域寬和精度值,使printf()的參數列表里依次出現代表域寬的參數和代表精度值的參數,巧妙的避免的預處理器不能作用于字符串內部的問題。

總結

以上是生活随笔為你收集整理的printf函数的格式修饰符的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 三级国产在线 | 高清日韩一区 | 久久精品免费电影 | 美女自卫网站 | 国产精品老牛影院99av | 91 高清 在线 制服 偷拍 | 免费在线看视频 | 九九热最新网址 | 日本不卡一区二区三区视频 | 亚洲午夜网 | 亚洲老老头同性老头交j | 国产精品一卡二卡 | 成人在线国产精品 | 激情婷婷丁香 | 精品国产成人亚洲午夜福利 | 99色网| 久久在线中文字幕 | 熟女人妇 成熟妇女系列视频 | av毛片在线 | 日韩视频免费看 | 精品久久影视 | 午夜在线观看av | 国产一级二级三级视频 | 蜜桃av网站 | 99国产精品国产精品九九 | 91欧美一区二区 | 美女的奶胸大爽爽大片 | 开元在线观看视频国语 | 香蕉久久夜色精品升级完成 | www.com日本 | 国产肥老妇视频 | 黄色a一片 | 神马午夜精品 | 激情偷拍 | 中文字幕第一页av | 神马久久久久久久久久 | 啪啪国产精品 | 欧洲色网 | 色小说综合 | 老妇荒淫牲艳史 | 国产aⅴ一区二区三区 | 少妇太紧太爽又黄又硬又爽小说 | 桃色成人网| 蜜臀aⅴ国产精品久久久国产老师 | 黄色网址大全免费 | 神马午夜888 | 久久国产福利一区 | 久久极品 | 天堂影音 | 狠狠躁18三区二区一区视频 | 国产亚洲一区二区三区在线观看 | 欧美精品www | 日本一道本 | 欧美激情电影一区二区 | 娇妻第一次尝试交换的后果 | 三级黄色生活片 | a级片日本 | www.色多多 | 福利片在线播放 | 色婷婷亚洲一区二区三区 | 久久久久久久久免费视频 | 免费久久av| 麻豆免费在线观看 | 国产激情亚洲 | 四虎新网站 | 久久av在线播放 | 欧美亚洲伦理 | av天天有 | 性欧美18一19性猛交 | 老女人性视频 | 午夜视频观看 | 最新极品jizzhd欧美 | 电影中文字幕 | 精品一区二区三区成人免费视频 | 久久精品夜色噜噜亚洲a∨ 中文字幕av网 | 女人被男人躁得好爽免费视频 | 奇米综合 | 亚洲视频小说 | 亚洲自拍偷拍av | 青青草一区二区三区 | 欧美亚洲国产另类 | 色吧av色av| 中文字幕久久av | 免费视频一区二区 | 欧美美女性生活 | 超碰人人射 | 亚洲国产视频在线观看 | 91玉足脚交嫩脚丫在线播放 | 国产精品19乱码一区二区三区 | 欧美色久 | 波多野结衣av在线观看 | 凹凸精品一区二区三区 | 奇米第四色7777 | 国产一区二区免费 | 亚洲第二色 | 丰满人妻综合一区二区三区 | 亚洲砖区免费 | 国产涩涩 | 亚洲最大网 |