'C語言基礎知識:printf的輸出格式,C/C++語言編程講解'

C語言 趣味編程小夥伴 2019-08-19
"
"
C語言基礎知識:printf的輸出格式,C/C++語言編程講解

C語言基礎知識:printf的輸出格式

printf()函數是格式輸出函數,請求printf()打印變量的指令取決與變量的類型.例如,在打印整數是使用%d符號,在打印字符是用%c 符號.這些符號被稱為轉換說明.因為它們指定了如何不數據轉換成可顯示的形式.下列列出的是ANSI C標準peintf()提供的各種轉換說明。

printf()函數是格式輸出函數,請求printf()打印變量的指令取決與變量的類型.例如,在打印整數是使用%d符號,在打印字符是用%c 符號.這些符號被稱為轉換說明.因為它們指定了如何不數據轉換成可顯示的形式.下列列出的是ANSI C標準peintf()提供的各種轉換說明。

轉換說明及作為結果的打印輸出

%a 浮點數、十六進制數字和p-記數法(C99)

%A 浮點數、十六進制數字和p-記法(C99)

%c 一個字符 

%d 有符號十進制整數 

%e 浮點數、e-記數法

%E 浮點數、E-記數法

%f 浮點數、十進制記數法

%g 根據數值不同自動選擇%f或%e.

%G 根據數值不同自動選擇%f或%e.

%i 有符號十進制數(與%d相同)

%o 無符號八進制整數

%p 指針

%s 字符串

%u 無符號十進制整數

%x 使用十六進制數字0f的無符號十六進制整數 

%X 使用十六進制數字0f的無符號十六進制整數

%% 打印一個百分號

使用printf ()函數

printf()的基本形式: printf("格式控制字符串",變量列表);

#include<cstdio>

int main()

{

//for int

int i=30122121;

long i2=309095024l;

short i3=30;

unsigned i4=2123453;

printf("%d,%o,%x,%X,%ld,%hd,%u\\n",i,i,i,i,i2,i3,i4);//如果是:%l,%h,則輸不出結果

printf("%d,%ld\\n",i,i2);//試驗不出%ld和%d之間的差別,因為long是4bytes

printf("%hd,%hd\\n\\n\\n",i,i3);//試驗了%hd和%d之間的差別,因為short是2bytes

//for string and char

char ch1='d';

unsigned char ch2=160;

char *str="Hello everyone!";

printf("%c,%u,%s\\n\\n\\n",ch1,ch2,str);//unsigned char超過128的沒有字符對應

//for float and double,unsigned and signed can not be used with double and float

float fl=2.566545445F;//or 2.566545445f

double dl=265.5651445;

long double dl2=2.5654441454;

//%g沒有e格式,默認6位包括小數點前面的數,

//%f沒有e格式,默認6位僅只小數點後面包含6位

//%e採用e格式,默認6位為轉化後的小數點後面的6位

printf("%f,%e,%g,%.7f\\n",fl,dl,dl,dl);

printf("%f,%E,%G,%f\\n",fl,dl,dl,dl);//%F is wrong

printf("%.8f,%.10e\\n",fl,dl);

printf("%.8e,%.10f\\n\\n\\n",fl,dl);

//for point

int *iP=&i;

char *iP1=new char;

void *iP2;//dangerous!

printf("%p,%p,%p\\n\\n\\n",iP,iP1,iP2);

//其他知識:負號,表示左對齊(默認是右對齊);%6.3,6表示寬度,3表示精度

char *s="Hello world!";

printf(":%s: \\n:%10s: \\n:%.10s: \\n:%-10s: \\n:%.15s: \\n:%-15s: \\n:%15.10s: \\n:%-15.10s:\\n\\n\\n",

s,s,s,s,s,s,s,s);

double ddd=563.908556444;

printf(":%g: \\n:%10g: \\n:%.10g: \\n:%-10g: \\n:%.15g: \\n:%-15g: \\n:%15.10g: \\n:%-15.10g:\\n\\n\\n",

ddd,ddd,ddd,ddd,ddd,ddd,ddd,ddd);

//還有一個特殊的格式%*.* ,這兩個星號的值分別由第二個和第三個參數的值指定

printf("%.*s \\n", 8, "abcdefgggggg");

printf("%*.*f \\n", 3,3, 1.25456f);

return 0;

私信“01”領取海量編程學習資料以及代碼編輯工具,黑客也是要先學好編程的。我設置好了自動回覆,就看你們是不是需要這些了。

"

相關推薦

推薦中...