close
C語言輸入輸出需引用Stdio.h,這也是為甚麼基本架構上面會有#include<stdio.h>這行的原因
輸出
printf("格式化字串",可選的變數);
printf這個函數 預設可以填入一個字串,後面可以以逗號加上無限多個變數,如果只有字串,則指輸出字串,如大家最喜歡的哈樓沃德(hello,world)
範例 hello,world
#include <stdio.h> int main() { printf("hello,world"); return 0; }
所以你一定想,後面的變數要幹嘛的
表達式
當你相要輸出變數的時候,你要在前面的字串裡面加入表達式在你要輸出的位子,後面加入你要輸出的變數,他就會印在那個位子,所以你前面打了幾個表達式,後面就要幾個變數
而表達式就是長這個樣子
%[parameter][flags][field width][.precision][length]type
中間一堆中括號都可省略,那是包含你要輸出幾位、幾個小數點的、輸入的限定設定等,有興趣的人可以看Wiki格式化字串
所以你一定想那類型呢
類型的對照表 取自Wiki
字元 | 描述 |
---|---|
d , i |
有符號十進位數值int 。'%d '與'%i '對於輸出是同義;但對於scanf() 輸入二者不同,其中%i 在輸入值有字首0x 或0時,分別表示16進位或8進位的值。如果指定了精度,則輸出的數字不足時在左側補0。預設精度為1。精度為0且值為0,則輸出為空。 |
u |
十進位unsigned int 。如果指定了精度,則輸出的數字不足時在左側補0。預設精度為1。精度為0且值為0,則輸出為空。 |
f , F |
double 型輸出10進位定點表示。'f '與'F '差異是表示無窮與NaN時,'f '輸出'inf ', 'infinity '與'nan ';'F '輸出'INF ', 'INFINITY '與'NAN '。小數點後的數字位數等於精度,最後一位數字四捨五入。精度預設為6。如果精度為0且沒有#標記,則不出現小數點。小數點左側至少一位數字。 |
e , E |
double 值,輸出形式為10進位的([- ]d.ddd e [+ /- ]ddd). E 版本使用的指數符號為E (而不是e )。指數部分至少包含2位數字,如果值為0,則指數部分為00 。Windows系統,指數部分至少為3位數字,例如1.5e002 ,也可用Microsoft版的執行時函式_set_output_format 修改。小數點前存在1位數字。小數點後的數字位數等於精度。精度預設為6。如果精度為0且沒有#標記,則不出現小數點。 |
g , G |
double 型數值,精度定義為全部有效數字位數。當指數部分在閉區間 [-4,精度] 內,輸出為定點形式;否則輸出為指數浮點形式。'g '使用小寫字母,'G '使用大寫字母。小數點右側的尾數0不被顯示;顯示小數點僅當輸出的小數部分不為0。 |
x , X |
16進位unsigned int 。'x '使用小寫字母;'X '使用大寫字母。如果指定了精度,則輸出的數字不足時在左側補0。預設精度為1。精度為0且值為0,則輸出為空。 |
o |
8進位unsigned int 。如果指定了精度,則輸出的數字不足時在左側補0。預設精度為1。精度為0且值為0,則輸出為空。 |
s |
如果沒有用l標誌,輸出null結尾字串直到精度規定的上限;如果沒有指定精度,則輸出所有位元組。如果用了l標誌,則對應函式參數指向wchar_t型的陣列,輸出時把每個寬字元轉化為多位元組字元,相當於呼叫wcrtomb 函式。 |
c |
如果沒有用l標誌,把int參數轉為unsigned char 型輸出;如果用了l標誌,把wint_t參數轉為包含兩個元素的wchart_t 陣列,其中第一個元素包含要輸出的字元,第二個元素為null寬字元。 |
p |
void * 型 |
a , A |
double 型的16進位表示,"[−]0xh.hhhh p±d"。其中指數部分為10進位表示的形式。例如:1025.010輸出為0x1.004000p+10。'a '使用小寫字母,'A '使用大寫字母。[2][3] (C++11流使用hexfloat 輸出16進位浮點數) |
n |
不輸出字元,但是把已經成功輸出的字元個數寫入對應的整型指標參數所指的變數。 |
% |
'% '字面值,不接受任何flags, width, precision or length。 |
範例 變數輸出
#include <stdio.h> int main() { int a=0; float b=0.0; a+=1; b=a*1.5; printf("a=%d,b=%f",a,b); return 0; }
想要顯示"怎麼辦?
(因為字串用"包住"所以如果要輸出"會造成編譯錯誤)
跳脫字元
派上用場
只要使用\反斜線符號後面一個個字,那個字並不被賦予原本的功效
如
- \" 把雙引號當成一般字顯示出來
- \' 顯示單引號
- \\ 顯示反斜線
範例
#include <stdio.h> int main() { printf("\"Hello,World.\" is a string.\'H\' is a char.\\ means escape."); return 0; }
想要換行怎麼辦?
想要跳格(Tab)怎麼辦?
還是用\ 不過後面是加一個定義的字母
- \n 換行
- \t 跳格
範例
#include <stdio.h> int main() { printf("firstline\nsecondline\n"); printf("jump!\tjump!\tstop!"); return 0; }
文章標籤
全站熱搜
留言列表