printf 格式化輸出原型在 stdio.h,特例可不含頭文件直接用。一般形式:
printf("格式控制字串", 輸出項列表);
格式控制字串含:
% 開頭,指定型別、寬度、精度等。如 %d 十進位整數、%c 字元、%s 字串。格式字串完整語法:[標誌][最小寬度][.精度][長度]類型
| 類型 | 意義 |
|---|---|
d | 帶符號十進位整數 |
o | 八進位無符號整數(無前綴) |
x | 十六進位無符號整數(無前綴) |
u | 十進位無符號整數 |
f | 小數形式實數 |
e | 指數形式實數 |
g | %f/%e 較短者 |
c | 單一字元 |
s | 字串 |
標誌:- 左對齊、+ 強制符號、空格 正數前加空格、# 八/十六進位加前綴、實數強制小數點。
寬度:最小輸出位數,不足補空格或 0。
精度:.n,實數指小數位數,字串指輸出字元數。
長度:h short、l long/double。
Turbo C printf 參數求值順序為**自右向左**,但輸出順序仍左到右。例:
int i=8;
printf("%d\n%d\n%d\n%d\n%d\n%d\n", ++i, --i, i--, i++, -i--);
輸出結果與多行 printf 不同,因參數求值順序不同。
putchar 字元輸出putchar(字元變數); // 輸出單一字元,含控制字元(如 \n)
需 #include <stdio.h>。
scanf 格式化輸入一般形式:scanf("格式控制字串", 位址列表);
printf 提示。&變數名 取得變數位址。格式字串語法:%[*][寬度][長度]類型
| 類型 | 意義 |
|---|---|
d | 十進位整數 |
o | 八進位整數 |
x | 十六進位整數 |
u | 無符號十進位整數 |
f/e | 實數(小數/指數) |
c | 單一字元 |
s | 字串 |
*:跳過該輸入項(不賦值)。
寬度:限制讀入字元數,如 %5d 只讀 5 位。
長度:l long/double、h short。
scanf 關鍵注意事項%5.2f 非法。scanf("%d",a) 錯,必 &a。%d 讀 12A)停止。%c 視空白、轉義字元為有效字元。scanf("%c%c%c",...) 輸入 a b c → 讀 'a',' ','b'。若格式串加空白 "%c %c %c" 才可用空白分隔。scanf("%d,%d",...) 需輸入 5,6。int a; scanf("%d",&a); printf("%ld",a); 結果錯誤,需 long a; scanf("%ld",...)。getchar 字元輸入char c; c = getchar(); // 從鍵盤讀單一字元
#include <stdio.h>。void main() {
char a,b,c;
printf("input character a,b,c\n");
scanf("%c %c %c", &a, &b, &c);
printf("%d,%d,%d\n%c,%c,%c\n", a,b,c, a-32,b-32,c-32);
}
sizeof 查看型別位元組長度printf("%d,%d,%d,%d,%d", sizeof(int), sizeof(long), sizeof(float), sizeof(double), sizeof(char));