C++ 基本輸入/輸出

你好,未來的C++程序設計師!今天,我們將要深入C++的輸入與輸出世界。如果你從未寫過一行代碼,也別擔心——我們將從最基本的開始,逐步進階。在這篇教程結束時,你會驚訝地發現,僅僅用幾行程式碼就能做到這麼多!

C++ Basic Input/Output

輸入/輸出庫標頭文件

在我們開始將消息打印到屏幕上或從用戶那裡讀取輸入之前,我們需要包含必要的標頭文件。在C++中,輸入和輸出操作由iostream庫處理。

讓我們從一個簡單的例子開始:

#include <iostream>

int main() {
// 你的代碼將放在這裡
return 0;
}

這是C++程序的基本結構。#include <iostream>這行程式碼告訴編譯器包含iostream庫,這使我們能夠訪問輸入和輸出功能。

標準輸出流(cout)

現在,讓我們學習如何將文字顯示在屏幕上。在C++中,我們使用cout(發音為"see-out")將輸出發送到控制台。

#include <iostream>
using namespace std;

int main() {
cout << "Hello, World!";
return 0;
}

當你運行這個程序時,它會在屏幕上顯示"Hello, World!"。讓我們來解析一下:

  • cout是標準輸出流對象。
  • <<運算符用於將數據發送到cout
  • 整數引號中的文字稱為字符串字面量。

你也可以使用cout打印多個項目:

cout << "My name is " << "Alice" << " and I am " << 25 << " years old.";

這將輸出:"My name is Alice and I am 25 years old."

添加新行

在輸出後移動到新行,你可以使用endl操作符或\n字符:

cout << "First line" << endl;
cout << "Second line\n";
cout << "Third line" << '\n';

標準輸入流(cin)

現在我們可以輸出文字了,讓我們學習如何從用戶那裡獲取輸入。我們用cin(發音為"see-in")來達到這個目的。

#include <iostream>
using namespace std;

int main() {
int age;
cout << "How old are you? ";
cin >> age;
cout << "You are " << age << " years old!" << endl;
return 0;
}

在這個例子中:

  • 我們聲明了一個整數變量age來存儲用戶的輸入。
  • 我們使用cout提示用戶輸入年齡。
  • cin >> age從用戶那裡讀取一個整數,並將其存儲在age變量中。
  • 最後,我們使用cout顯示結果。

你也可以讀取多個輸入:

string name;
int age;
cout << "Enter your name and age: ";
cin >> name >> age;
cout << "Hello, " << name << "! You are " << age << " years old." << endl;

標準錯誤流(cerr)

雖然cout對於正常輸出來說很棒,但有時我們需要顯示錯誤消息。這就是cerr的用處。它與cout類似,但它專門用於錯誤消息。

#include <iostream>
using namespace std;

int main() {
int denominator = 0;
if (denominator == 0) {
cerr << "Error: Cannot divide by zero!" << endl;
}
return 0;
}

使用cerr有助於區分正常輸出和錯誤消息,這在調試程序時至關重要。

標準日誌流(clog)

最後,我們有clog,它用於日誌消息。它與cerr類似,但它可能被緩衝,意味著輸出可能不會立即顯示。

#include <iostream>
using namespace std;

int main() {
clog << "This is a log message." << endl;
return 0;
}

實際上,clog的使用頻率不如coutcerr,但知道它的存在是好的。

輸出格式化

現在我們已經涵蓋了基礎知識,讓我們看看一些格式化輸出的方法,讓它看起來更美觀。

設置字段寬度

你可以使用setw操作符來設置字段的寬度:

#include <iostream>
#include <iomanip>
using namespace std;

int main() {
cout << setw(10) << "Name" << setw(5) << "Age" << endl;
cout << setw(10) << "Alice" << setw(5) << 25 << endl;
cout << setw(10) << "Bob" << setw(5) << 30 << endl;
return 0;
}

這將產生一個對齊良好的輸出:

Name  Age
Alice   25
Bob   30

浮點數的精度

對於浮點數,你可以使用setprecision控制精度:

#include <iostream>
#include <iomanip>
using namespace std;

int main() {
double pi = 3.14159265359;
cout << "Default pi: " << pi << endl;
cout << "Pi to 4 decimal places: " << fixed << setprecision(4) << pi << endl;
return 0;
}

輸出:

Default pi: 3.14159
Pi to 4 decimal places: 3.1416

輸入/輸出流對象和操作符總結

以下是輸入/輸出流對象和操作符的便捷表格總結:

對象/操作符 描述 示例
cout 標準輸出流 cout << "Hello";
cin 標準輸入流 cin >> variable;
cerr 標準錯誤流 cerr << "Error!";
clog 標準日誌流 clog << "Log message";
endl 結束行 cout << "Hello" << endl;
setw 設置字段寬度 cout << setw(10) << "Name";
setprecision 設置浮點數精度 cout << setprecision(2) << 3.14159;

以上就是了!你剛剛學會了C++中輸入和輸出的基礎。記住,練習是成功之母,所以不要害怕嘗試這些概念。嘗試將它們以不同的方式結合起來,很快你就會輕鬆地編寫複雜的程序。

編程愉快,願你的輸出永遠如你所願,輸入永遠有效!

Credits: Image by storyset