printf交替使用

2021-09-07 01:48:22 字數 975 閱讀 1467

今天附帶printf一些替代實現。

我們總是用printf做各種輸出語句:

printf("%d",i);  printf("%s",str); printf("i'm xingyanhong\n");

今天偶然看到了這樣一句話:

int nflag = printf("%d",i);

就認為非常納悶,這麼執行後,nflag又是什麼值呢?

發現nflag與i的值一樣了。

這是整型的情況,其它型別又會如何呢?我又進行了實驗:

這下有意思了。nflag的數並沒有像int型時一樣和i相等而是等於8。細緻觀察我們能夠發現,這個數字8正是i的全部位數+1(代表小數點)

那麼字串又會如何呢?

我們接著來:

這裡nflag的值為9了,為什麼呢

^_^最後總結一下:

數字

int

printf 返回相應數字

數字

float

printf返回數字的位數+1(小數點)

字串

char* printf返回字串的長度,相當於strlen

事實上還有其它種的型別,大家能夠自己去試一試。這個知識點或許會有人嗤之以鼻,但我貼出來的想法,就是認為這個我並不知道的小知識,自己動手實現歸納出來還是有意義的,個人認為過程還是挺重要的。

每個你能夠努力今天。他們是厚厚禮。

使用printf輸出

echo命令的不同版本導致了unix系列機移植性最為頭痛的事情,在posix第一輪標準化時,委員會委員就如何標準化echo沒有達成一致意見,所以他們想出了乙個妥協的方案。echo是posix 標準的一部分,但是標準並不詳盡的指明echo的第乙個引數的具體行為。printf命令能夠像echo命令一樣輸...

printf的另類使用

今天偶然對printf的一些另類實現。我們總是用printf做各種輸出語句 printf d i printf s str printf i m xingyanhong n 今天偶然看到了這樣一句話 int nflag printf d i 就覺得很納悶,這麼執行後,nflag又是什麼值呢?發現nf...

C 使用多執行緒交替列印1 10

使用多執行緒交替列印1 10,執行緒1列印奇數,執行緒2列印偶數,有兩種方式實現,一種是使用訊號量 即互斥鎖 另一種是不使用互斥量,人為控制number的讀寫。以下為個人想法,可能有錯誤 這是乙個面試很常見的題目,要求交替列印,使用互斥量的原理很簡單,就是確保乙個執行緒在對number進行操作的時候...