2019年11月22日 星期五

C語言教學04 - 格式化輸入輸出

格式化字元

格式化字元都是由「%」百分比符號開始。以下列舉常用者,有些現在不曉得是什麼的東西,以後會再闡述。

正負號

符號用途
+強制顯示正負號
空格假如非負號時顯示空格

顯示精度

符號用途
#數字代表顯示的位數,若數字不夠,則以空白補齊
0修飾顯示的位數,若數字不夠,在左側補零對齊
.#小數點後的數字代表double的小數後精度

變數長度修飾

變數長度修飾加在型別前
字元解釋
hh修飾int型別,代表signed char或unsigned char
h修飾int型別,代表short int或unsigned short int
l(ell)修飾所有型別,對於浮點類型無意義,對於int成為long int或unsigned long int
ll修飾int型別,代表long long int或unsigned long long int
L修飾double,代表long double
j修飾int型別,代表intmax_t或uintmax_t型別
t修飾int型別,代表ptrdiff_t型別
z修飾int型別,代表size_t型別

型別字元

字元解釋
dint類別,十進位
iint類別,輸入時判斷進位法
uunsigned int,十進位
ounsigned int,八進位
x, Xunsigned int,十六進位
fdouble
edouble 科學記號
cchar 型別用Ascii印出
schar陣列(字串)
pvoid指標
%就是一個百分比符號

printf 格式化標準輸出

我們試用一下
#include <stdio.h> int main() { int a = 10; printf("Hello %+d\n", a); printf("%10d\n", a); printf("%010d\n", a); unsigned long long int b = 20L; printf("Hi %llu\n", b); printf("Aloha %llx\n", b); double c = 3.14; printf("%f\n", c); printf("%e\n", c); printf("%.1f\n", c); printf("%d, %llu, or %f\n", a, b, c); return 0; }
執行結果
Hello +10
        10
0000000010
Hi 20
Aloha 14
3.140000
3.140000e+00
3.1
10, 20, or 3.140000

scanf 標準格式化輸入

其實差不多,但是有差異
#include <stdio.h> int main() { int a; scanf("%d", &a); // 要加&,address of operator 取址運算子 printf("Hello%x\n", a); }
scanf這裡要加取址運算子&,否則會造成電腦大暴走。原因會在以後闡述。
假如輸入23
23[Enter]
Hello17




👉【幫我們一個忙!】👈

👋如果您喜歡這篇文章,請在下方按5個Like!
 ❤您的支持是我們最大的動力!

您只要登入帳號(Facebook、Google),在下方按5個Like,我們就會收到來自LikeCoin基金會的贊助。
您只需要支持我們,完全不會花到錢!