C语言各种类型数据的输出显示
之前我們使用 puts 來輸出字符串。puts 是 output string 的縮寫,只能用來輸出字符串,不能輸出整數、小數、字符等,我們需要用另外一個函數,那就是 printf。
printf 比 puts 更加強大,不僅可以輸出字符串,還可以輸出整數、小數、單個字符等,并且輸出格式也可以自己定義,例如:
以十進制、八進制、十六進制形式輸出;要求輸出的數字占 n 個字符的位置;控制小數的位數。**printf 是 print format 的縮寫,意思是“格式化打印”。**這里所謂的“打印”就是在屏幕上顯示內容,與“輸出”的含義相同,所以我們一般稱 printf 是用來格式化輸出的。
示例
printf("今天天氣晴朗");這個語句可以在屏幕上顯示“今天天氣晴朗”,與puts(“今天天氣晴朗”);的效果類似。
輸出變量 abc 的值:
int abc=333; 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 支持更加復雜和優美的輸出格式。
我們的完整程序
#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是一個整體,組合在一起表示一個換行字符。換行符是 ASCII 編碼中的一個控制字符,無法在鍵盤上直接輸入,只能用這種特殊的方法表示,被稱為轉義字符。
puts 輸出完成后會自動換行,而 printf 不會,要自己添加換行符,這是 puts 和 printf 在輸出字符串時的一個區別。
2 . //后面的為注釋。注釋用來說明代碼是什么意思,起到提示的作用,可以幫助我們理解代碼。注釋雖然也是代碼的一部分,但是它并不會給程序帶來任何影響,編譯器在編譯階段會忽略注釋的內容,或者說刪除注釋的內容。
3 . money 的輸出值并不是 93.96,而是一個非常接近的值,這與小數本身的存儲機制有關,這種機制導致很多小數不能被精確地表示,即使像 93.96 這種簡單的小數也不行。
我們不用變量,將數據直接輸出:
#include <stdio.h> int main() {float money = 93.96;printf("n=%d, c=%c, money=%f\n", 100, '@', money);return 0; }輸出結果與上面相同。
編程中,我們會經常使用 printf,說它是C語言中使用頻率最高的一個函數一點也不為過。
%ds輸出什么
%d 輸出整數,%s 輸出字符串,那么 %ds 輸出什么呢?
示例
#include <stdio.h> int main() {int a=5555;printf("a=%ds\n", a);return 0; }運行結果:
a=5555s從輸出結果可以發現,%d被替換成了變量 a 的值,而s沒有變,原樣輸出了。這是因為, %d才是格式控制符,%ds在一起沒有意義,s僅僅是跟在%d后面的一個普通字符,所以會原樣輸出。
那么如何在字符串中書寫長文本
假設現在我們要輸出一段比較長的文本,它的內容為:
如果將這段文本放在一個字符串中,會顯得比較臃腫,格式也不好看,就像下面這樣:
當文本超出編輯窗口的寬度時,可以選擇將文本換行,也可以選擇將文本隱藏(可以在編輯器里面自行設置),但是不管哪種形式,在一個字符串里書寫長文本總是不太美觀。
當然,你可以多寫幾個 puts 函數,就像下面這樣:
我不否認這種寫法也比較美觀,但是這里我要講的是另外一種寫法:
#include <stdio.h>
int main()
{
puts(
“我們說的是漢語,是“中國語言”,只要把我們的需求告訴父母,”
“父母就會滿足,我們用“中國語言”來控制父母,”
“讓父母做我們喜歡的事情。”
);
return 0;
}
在 puts 函數中,可以將一個較長的字符串分割成幾個較短的字符串,這樣會使得長文本的格式更加整齊。
注意,這只是形式上的分割,編譯器在編譯階段會將它們合并為一個字符串,它們放在一塊連續的內存中。
多個字符串并不一定非得換行,也可以將它們寫在一行中,例如:
#include <stdio.h>
int main()
{
puts(“今天” “明天” “后天”);
return 0;
}
我們所說的 puts、printf,以及 fprintf、fputs 等與字符串輸出有關的函數,都支持這種寫法。
如果感覺不錯請點贊喲!!!
總結
以上是生活随笔為你收集整理的C语言各种类型数据的输出显示的全部內容,希望文章能夠幫你解決所遇到的問題。