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, ...);
程式碼 說明
printf("Hello, World!\n");
輸出字串 Hello, World!,並換行 (\n)。
int num = 10;
printf("The number is: %d\n", num);
輸出一個整數。%d格式指定符,表示要輸出一個十進位整數。
double pi = 3.14159;
printf("Pi is approximately %.2f\n", pi);
輸出一個浮點數。%.2f 表示輸出浮點數,並保留兩位小數。
常用的格式指定符 %d,%lld(整數)
%f,%lf(浮點數)
%c(字元)
%s(字串)

2. 輸入 (Input)

C 語言中最常用的輸入函式是 scanf()

scanf() 函式

  • 用途: 從標準輸入(通常是鍵盤)讀取格式化的資料。
  • 標頭檔: <stdio.h>
  • 語法:
    int scanf(const char *format, ...);
程式碼 說明
int age; scanf("%d", &age);
讀取一個整數並存入變數 age注意: 必須使用 & 符號(地址運算符)來傳遞變數的記憶體地址。
double price; scanf("%lf", &price);
讀取一個雙精度浮點數。注意: double 類型通常使用 %lf
char name[50]; scanf("%s", name);
讀取一個字串並存入字元陣列 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 具有型別安全性,不需要格式指定。
程式碼 說明
std::cout << "Hello, C++!\n";
輸出字串 Hello, C++! 並換行。
int num = 20; std::cout << "The number is: " << num << std::endl;
輸出一個整數變數,無需格式指定符。std::endl 會換行並刷新緩衝區。
double pi = 3.14; std::cout << pi;
輸出一個浮點數。

2. 輸入 (Input)

C++ 使用 cin 物件進行標準輸入。

cin 物件與 >> 運算符

  • 用途: 從標準輸入串流讀取資料。
  • 標頭檔: <iostream>
  • 語法:
    std::cin >> variable1 >> variable2 >> ...;
  • 說明: >>擷取運算符(Extraction Operator)。變數前不需要 & 符號。
程式碼 說明
int age; std::cin >> age;
讀取一個整數並存入 age 變數。
double price; std::cin >> price;
讀取一個浮點數。
std::string name; std::cin >> name;
讀取一個字串(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 \nstd::endl

註: 雖然可以在 C++ 程式中使用 C 語言的 I/O 函式(如 printf/scanf),但在純 C++ 程式中,通常更推薦使用 cout/cin,因為它們與 C++ 的串流模型更一致,且型別安全性更好。


返回課程目錄
許老師APCS線上家教

留言

這個網誌中的熱門文章

目錄

資料型態

Code::Blocks