C/C++ 的輸入與輸出
C 與 C++ 的輸入與輸出 (Input/Output, I/O)
C 語言的輸入與輸出 (I/O in C)
C 語言主要透過標準函式庫 <stdio.h> 提供的函式來處理輸入與輸出。
1. 輸出 (Output)
C 語言中最常用的輸出函式是 printf()。
printf() 函式
- 用途: 將格式化的資料輸出到標準輸出(通常是螢幕)。
- 標頭檔:
<stdio.h> - 語法:
int printf(const char *format, ...);
| 程式碼 | 說明 |
|---|---|
|
輸出字串 Hello, World!,並換行 (\n)。 |
|
輸出一個整數。%d 是格式指定符,表示要輸出一個十進位整數。 |
|
輸出一個浮點數。%.2f 表示輸出浮點數,並保留兩位小數。 |
| 常用的格式指定符 | %d,%lld(整數)%f,%lf(浮點數)%c(字元)%s(字串) |
2. 輸入 (Input)
C 語言中最常用的輸入函式是 scanf()。
scanf() 函式
- 用途: 從標準輸入(通常是鍵盤)讀取格式化的資料。
- 標頭檔:
<stdio.h> - 語法:
int scanf(const char *format, ...);
| 程式碼 | 說明 |
|---|---|
|
讀取一個整數並存入變數 age。注意: 必須使用 & 符號(地址運算符)來傳遞變數的記憶體地址。 |
|
讀取一個雙精度浮點數。注意: double 類型通常使用 %lf。 |
|
讀取一個字串並存入字元陣列 name。%s 會在遇到空白、換行或 Tab 時停止讀取。 |
C++ 語言的輸入與輸出 (I/O in C++)
C++ 語言主要透過標準函式庫 <iostream> 的 namespace std 中提供的串流(Stream)物件來處理輸入與輸出。
1. 輸出 (Output)
C++ 使用 cout 物件進行標準輸出。
cout 物件與 << 運算符號
- 用途: 將資料寫入標準輸出串流。
- 標頭檔:
<iostream> - 語法:
std::cout << expression1 << expression2 << ...; - 說明:
<<是插入運算符(Insertion Operator)。C++ 的 I/O 具有型別安全性,不需要格式指定。
| 程式碼 | 說明 |
|---|---|
|
輸出字串 Hello, C++! 並換行。 |
|
輸出一個整數變數,無需格式指定符。std::endl 會換行並刷新緩衝區。 |
|
輸出一個浮點數。 |
2. 輸入 (Input)
C++ 使用 cin 物件進行標準輸入。
cin 物件與 >> 運算符
- 用途: 從標準輸入串流讀取資料。
- 標頭檔:
<iostream> - 語法:
std::cin >> variable1 >> variable2 >> ...; - 說明:
>>是擷取運算符(Extraction Operator)。變數前不需要&符號。
| 程式碼 | 說明 |
|---|---|
|
讀取一個整數並存入 age 變數。 |
|
讀取一個浮點數。 |
|
讀取一個字串(C++ 標準庫的 std::string),在遇到空白字元時停止讀取。 |
C 與 C++ I/O 比較總結
| 特性 | C 語言 (stdio) | C++ 語言 (iostream) |
|---|---|---|
| 主要機制 | 函式呼叫 (printf, scanf) |
串流物件 (cout, cin) 與運算符號 (<<, >>) |
| 標頭檔 | <stdio.h> |
<iostream> |
| 輸出函式/物件 | printf() |
std::cout |
| 輸入函式/物件 | scanf() |
std::cin |
| 格式化 | 必須使用格式指定符號 (如 %d, %s) |
不需要格式指定 (型別安全) |
| 輸入時變數地址 | scanf 必須使用 & (取址運算符號) |
cin 不需要使用 & |
| 換行 | \n |
\n 或 std::endl |
註: 雖然可以在 C++ 程式中使用 C 語言的 I/O 函式(如 printf/scanf),但在純 C++ 程式中,通常更推薦使用 cout/cin,因為它們與 C++ 的串流模型更一致,且型別安全性更好。
返回課程目錄
許老師APCS線上家教


留言
張貼留言