int a;
scanf("%d", &a); // 期望輸入字符 '2' 得到 ASCII 50
printf("%d", a); // 輸出 2 (若輸入數字 2) 或隨機值 (若輸入字符)
#include
#include
int main() {
int a = 0; // 初始化避免隨機值
scanf("%c", &a); // %c 讀取單個字符 (含空格/換行)
// 或 scanf(" %c", &a); // 空格跳過前導空白字符
printf("%d\n", a); // 輸出 ASCII 碼
system("pause");
return 0;
}
| 格式符 | 讀取內容 | 賦值類型 | 示例輸入 → 結果 |
|---|---|---|---|
| `%c` | 單個字符 (含空白) | `char*` / `int*` | `a` → 97 |
| `%d` | 十進制整數 | `int*` | `97` → 97 |
| ` %c` | 跳過空白後單字符 | `char*` | ` a` → 97 |
| `%s` | 字符串 (至空白) | `char*` | `abc` → "abc\0" |
char ch;
scanf(" %c", &ch);
int ascii = (int)ch; // 顯式轉換
printf("字符: %c, ASCII: %d\n", ch, ascii);
核心:**`%c` 讀字符得 ASCII,`%d` 讀數字得數值**,格式符必須與輸入數據類型匹配。