vocus logo

方格子 vocus

無痛入手 C++:基礎教學3 - 程式的輸入與輸出

更新 發佈閱讀 3 分鐘

<iostream>

​在之前的文章有提到過,<iostream> 是專門處理程式的輸入 (input) 以及輸出 (output) 的函式庫。輸入輸出的對象是以電腦作為主角: 輸入指的是「把資料給電腦」,輸出指的是「從電腦那邊取得資料」

在這個系列的文章中,程式輸入指的都是從鍵盤輸入資料給電腦,而輸出指的都是把東西印在螢幕上。在我們的例子中,鍵盤是輸入裝置而螢幕則是輸出裝置

電腦可以有各式各樣的輸入及輸出裝置: 如硬碟、網路卡、麥克風、鏡頭、甚至是紅外線感測器或是機械手臂!

程式輸入

cin 是預先定義在 <iostream> 中專門用來處理輸入的變數,可以使用 >> 運算子來將輸入裝置的資料取出來放到右邊的運算元中。跟之前提過的 cout 是一樣的概念: 你可以把 >> 想成是輸入資料透過 cin 「流入」變數。執行下列的程式:

#include <iostream>

using namespace std;

int main() {
int x = 0;
// read a number into x​
cin >> x;
cout << x;
return 0;
}

程式執行到第八行的時候會停下來等待輸入,用鍵盤輸入一個數字按下 Enter,程式就會將數字讀進 x 裡面,並在第九行印出來。

cin 可以利用多個 >> 把多筆輸入資料存進不同的變數裡面,如:

int x, y;
cin >> x >> y;
cout << x << '\n';
cout << y << '\n';

cin 會把第一筆輸入資料存進 x,接著再把第二筆輸入資料存進 y。

程式輸出

cout 是預先定義在 <iostream> 中專門用來處理輸出的變數,可以使用 << 運算子來將右邊的運算元的值傳遞給輸出裝置。
第一篇「基礎系列1 - Hello C++! 的程式架構介紹」有提到 cout 後面可以透過多個 << 串接多個想印出的資料,以下兩行程式會印出相同的內容:

cout << "Hello C++ !\n";
cout << "Hello " << "C++ " << "!" << '\n';

此外,cout 的陳述是可以橫跨多行的,所以如果要列印的文字很長的話,可以考慮切成多行來增加可讀性。下面的程式會印出一樣的結果:

cout << "Hello "
<< "C++ "
<< "!";

事實上,C++ 的任意陳述 (statement) 都是可以橫跨多行的,電腦會用「;」來判斷陳述的結尾在哪裡。有時候可以利用這個特性來把長度太長的陳述切成多行,可以大大增加可讀性。


總結

這篇文章快速的介紹了程式的輸入及輸出。

實際上 C++ 還提供了許多處理輸入輸出的方式,以及各種控制輸入輸出格式的語法,不過介紹起來會有些瑣碎,所以這邊只提到最單純的用法,等之後準備要寫更複雜的程式的時候再補充更多的用法。


習題

  1. 使用三個 cout 分成三行印出下列結果:
I like to

moving

moving!
  1. 使用一個 cout 分成三行印出同樣的結果。
  2. 使用一個 cout 用一行印出同樣的結果。
  3. 輸入名字,接著印出 Hello! 加上名字。舉例來說,輸入 Bob 的話,應該要印出 Hello! Bob。
留言
avatar-img
鏟薯員的窩
9會員
14內容數
程式設計 & 電腦系統 & 系統軟體
鏟薯員的窩的其他內容
2024/05/05
C 語言的函式庫定義了許多好用的函式,在寫 C++ 的時候可以拿來用。這是因為 C++ 當初在設計的時候,就有刻意把 C 涵蓋進來。 基本用法 首先要導入 C 語言的標準函式庫: #include <cstdlib> 以 c 作為開頭表示它是 C 語言的函式庫,只是被我們拿來 C++ 的程式
Thumbnail
2024/05/05
C 語言的函式庫定義了許多好用的函式,在寫 C++ 的時候可以拿來用。這是因為 C++ 當初在設計的時候,就有刻意把 C 涵蓋進來。 基本用法 首先要導入 C 語言的標準函式庫: #include <cstdlib> 以 c 作為開頭表示它是 C 語言的函式庫,只是被我們拿來 C++ 的程式
Thumbnail
看更多
你可能也想看
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
這篇內容,將會講解什麼是函式,以及與函式相關的知識。包括函式的簡介、Runtime Function、自訂函式、Script Function 腳本函式、Method 方法。
Thumbnail
這篇內容,將會講解什麼是函式,以及與函式相關的知識。包括函式的簡介、Runtime Function、自訂函式、Script Function 腳本函式、Method 方法。
Thumbnail
<iostream> ​在之前的文章有提到過,<iostream> 是專門處理程式的輸入 (input) 以及輸出 (output) 的函式庫。輸入輸出的對象是以電腦作為主角: 輸入指的是「把資料給電腦」,輸出指的是「從電腦那邊取得資料」。 在這個系列的文章中,程式輸入指的都是從鍵盤輸入資料給電
Thumbnail
<iostream> ​在之前的文章有提到過,<iostream> 是專門處理程式的輸入 (input) 以及輸出 (output) 的函式庫。輸入輸出的對象是以電腦作為主角: 輸入指的是「把資料給電腦」,輸出指的是「從電腦那邊取得資料」。 在這個系列的文章中,程式輸入指的都是從鍵盤輸入資料給電
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
User Input & Tables 的使用
Thumbnail
User Input & Tables 的使用
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
這篇內容,將會講解什麼是「switch」,以及與「switch」相關的知識。包括switch的簡介、switch、break。
Thumbnail
這篇內容,將會講解什麼是「switch」,以及與「switch」相關的知識。包括switch的簡介、switch、break。
Thumbnail
Lua 開檔寫檔的運用 io.output()...
Thumbnail
Lua 開檔寫檔的運用 io.output()...
Thumbnail
《轉轉生》(Re:INCARNATION)為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,結合拉各斯街頭節奏、Afrobeat/Afrobeats、以及約魯巴宇宙觀的非線性時間,建構出關於輪迴的「誕生—死亡—重生」儀式結構。本文將從約魯巴哲學概念出發,解析其去殖民的身體政治。
Thumbnail
《轉轉生》(Re:INCARNATION)為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,結合拉各斯街頭節奏、Afrobeat/Afrobeats、以及約魯巴宇宙觀的非線性時間,建構出關於輪迴的「誕生—死亡—重生」儀式結構。本文將從約魯巴哲學概念出發,解析其去殖民的身體政治。
Thumbnail
這篇內容,將簡單介紹Asset Browser、Workspace、Inspector、Code Browser,作為入門的介面導覽。
Thumbnail
這篇內容,將簡單介紹Asset Browser、Workspace、Inspector、Code Browser,作為入門的介面導覽。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News