程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> C語言基礎知識 >> 在屏幕上輸出各種類型的數據

在屏幕上輸出各種類型的數據

編輯:C語言基礎知識
在《C語言在屏幕上顯示內容》一節中,我們使用 puts 來輸出字符串。puts 是 output string 的縮寫,只能用來輸出字符串,不能輸出整數、小數、字符等,我們需要用另外一個函數,那就是 printf。

printf 比 puts 更加強大,不僅可以輸出字符串,還可以輸出整數、小數、單個字符等;輸出格式也可以自己定義,例如:
  • 以十進制、八進制、十六進制形式輸出;
  • 要求輸出的數字占 n 個字符的位置;
  • 控制小數的位數。

printf 是 print format 的縮寫,意思是“格式化打印”。這裡所謂的“打印”就是在屏幕上顯示內容,與“輸出”的含義相同,所以我們一般稱 printf 是用來格式化輸出的。

先來看一個簡單的例子:
printf("C語言中文網");
這個語句可以在屏幕上顯示“C語言中文網”,與puts("C語言中文網");的效果類似。

輸出變量 abc 的值:
int abc=999;
printf("%d", abc);
這裡就比較有趣了。先來看%d,d 是 decimal 的縮寫,意思是十進制數,%d 表示以十進制的形式輸出。輸出什麼呢?輸出變量 abc 的值。%d 與 abc 是對應的,也就是說,會用 abc 的值來替換 %d。

再來看個復雜點的:
int abc=999;
printf("The value of abc is %d !", abc);
會在屏幕上顯示:
The value of abc is 999 !

你看,字符串 "The value of abc is %d !" 中的 %d 被替換成了 abc 的值,其他字符沒有改變。這說明 %d 比較特殊,不會原樣輸出,會被替換成對應的變量的值。

再來看:
int a=100;
int b=200;
int c=300;
printf("a=%d, b=%d, c=%d", a, b, c);
會在屏幕上顯示:
a=100, b=200, c=300

再次證明了 %d 與後面的變量是一一對應的,第一個 %d 對應第一個變量,第二個 %d 對應第二個變量……

%d稱為格式控制符,它指明了以何種形式輸出數據。格式控制符均以%開頭,後跟其他字符。%d 表示以十進制形式輸出一個整數。除了 %d,printf 支持更多的格式控制,例如:
  • %c:輸出一個字符。c 是 character 的簡寫。
  • %s:輸出一個字符串。s 是 string 的簡寫。
  • %f:輸出一個小數。f 是 float 的簡寫。

除了這些,printf 支持更加復雜和優美的輸出格式,考慮到讀者的基礎暫時不夠,我們將在《C語言數據輸出大匯總以及輕量進階》一節中展開講解。

我們把代碼補充完整,體驗一下:
#include <stdio.h>
int main()
{
    int n = 100;
    char c = '@';  //字符用單引號包圍,字符串用雙引號包圍
    float money = 93.96;
    printf("n=%d, c=%c, money=%f\n", n, c, money);

    return 0;
}
輸出結果:
n=100, c=@, money=93.959999

要點提示:
1) \n表示換行,在《C語言轉義字符》一節中有具體講解。puts 輸出完成後會自動換行,而 printf 不會,要自己添加換行符。

2) //後面的為注釋。注釋用來說明代碼是什麼意思,讓我們閱讀更加方便,它也是代碼的一部分。編譯器會忽略注釋內容。我們將在《C語言標識符、關鍵字和注釋》一節中詳細講解。

3) money 的輸出值並不是93.96,而是一個非常接近的值,這與小數的存儲有關,我們將在《小數在內存中是如何存儲的》一節詳細介紹。

我們也可以不用變量,直接將數據輸出:
#include <stdio.h>
int main()
{
    float money = 93.96;
    printf("n=%d, c=%c, money=%f\n", 100, '@', money);

    return 0;
}
輸出結果與上面相同。

【腦筋急轉彎】%ds輸出什麼

%d 輸出整數,%s 輸出字符竄,那麼 %ds 輸出什麼呢?

%ds 輸出整數,並在後面添加一個字符 's'。因為 %d 是格式字符串,%ds 在一起沒有意義,'s' 僅僅是在 %d 後面的一個普通字符。請看下面的例子:
#include <stdio.h>
int main()
{
    int a=1234;
    printf("a=%ds\n", a);

    return 0;
}
運行結果:
a=1234s
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved