打印基本類型
以下打印基本的數(shù)據(jù)類型, 如int, char, float等, 最后兩行是以八進制和十六進制打印數(shù)字10
int aint=10;
float afloat=1.1;
double adouble=2.2;
char achar='a';
char *str="string";
printf("int aint=%d\n",aint);
printf("float afloat=%f\n",afloat);
printf("double adouble=%f\n",adouble);
printf("char achar=%c\n",achar);
printf("char *str=%s\n",str);
printf("octal int aint=%o(8)\n",aint);
printf("hex int aint=%x(16)\n",aint)
windows gcc輸出:
577410c5-303b-4e00-b249-bf844ad06131.png
設置輸出寬度
設置每個整數(shù)占10個位置, 默認為右對齊
如果數(shù)字的長度比設置的寬度大, 那么會忽略我們設置的輸出寬度
int a=1,b=2,c=3,d=4;
printf("%10d, %10d\n", a, b);
printf("%10d, %10d\n", a, b);
windows gcc輸出:
8fac1c0e-6aee-4e5f-b7ae-c8cbf2e92a87.png
對齊,填充
在上一個例子中, 設置寬度后默認是右對齊, 我們可以在10前加一個-(減號)設置為左對齊
在上一個例子中, 當整數(shù)的長度少于我們設置的寬度時會用空格去填充,我們 可以在10前加一個0用數(shù)字0進行填充
int a=1,b=2,c=3,d=4;
printf("%-10d, %-10d\n", a, b);
printf("%010d, %010d\n", a, b);
windows gcc輸出:
742ddcdf-258e-44a9-a111-704e6f6ace22.png
精度
在時浮點數(shù)字后面跟的小數(shù)點很長,如pi=3.1415... , 但我們只想看小數(shù)點后2位或3位
%.xf, 其中的x就是我們要保留的小數(shù)點后的位數(shù),在x前面有個點號為精度標志
double pi=3.1415926;
printf("%.3f\n",pi);
printf("%.6f\n",pi);
windows gcc輸出:
4c8c9b4d-88b1-4639-b9f8-33ae50972368.png
超長整數(shù)
%lld 用于輸出像long long這類超長的整數(shù), 中間的兩個ll是long long的縮寫
long long a=123456789012345;
printf("%lld\n", a);
0b6a9901-7719-4715-ae68-f4ae527b85a9.png
小結(jié)
printf的格式化工作: <b >%[對齊,填充,正負][輸出寬度][精度][超長整數(shù)]基本類型</b>
中括號括著的表示可有可無, 百分號和基本類型這兩部分不能為空
在[對齊,填充,正負]中的正負用+(加號)來表示, 如果整數(shù)為正就顯示一個+,如果為負就顯示一個-
收尾例子: 顯示浮點數(shù)前的正負號; 不顯示浮點數(shù)的小數(shù)部分
float a=10.01;
printf("%+f\n",a);
printf("%+.0f\n",a)
14e52b87-1535-4b81-be09-d5f934a888ad.png