無痛入手 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
3會員
14內容數
程式設計 & 電腦系統 & 系統軟體
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
鏟薯員的窩 的其他內容
電腦只做一件事情: 運算。 我們所看到的任何酷酷的應用: 不論是網頁動畫、遊戲特效、甚至是 AI 說的話,全部都 是由電腦的運算結果組合而成的。 首先我們來梳理一下各個名詞之間的關聯: 1. 運算分成兩個部分: 運算子 (運算的名稱,如: 加法) 和運算元 (運算的對象,如: 8)。運算就是對資
這個系列是專門寫給 0 程式設計經驗的初學者的 C++ 教學, 無需架設環境,直接開始無痛入手 C++ ~
電腦只做一件事情: 運算。 我們所看到的任何酷酷的應用: 不論是網頁動畫、遊戲特效、甚至是 AI 說的話,全部都 是由電腦的運算結果組合而成的。 首先我們來梳理一下各個名詞之間的關聯: 1. 運算分成兩個部分: 運算子 (運算的名稱,如: 加法) 和運算元 (運算的對象,如: 8)。運算就是對資
這個系列是專門寫給 0 程式設計經驗的初學者的 C++ 教學, 無需架設環境,直接開始無痛入手 C++ ~
你可能也想看
Google News 追蹤
Thumbnail
大家好,我是woody,是一名料理創作者,非常努力地在嘗試將複雜的料理簡單化,讓大家也可以體驗到料理的樂趣而我也非常享受料理的過程,今天想跟大家聊聊,除了料理本身,料理創作背後的成本。
Thumbnail
哈囉~很久沒跟各位自我介紹一下了~ 大家好~我是爺恩 我是一名圖文插畫家,有追蹤我一段時間的應該有發現爺恩這個品牌經營了好像.....快五年了(汗)時間過得真快!隨著時間過去,創作這件事好像變得更忙碌了,也很開心跟很多厲害的創作者以及廠商互相合作幫忙,還有最重要的是大家的支持與陪伴🥹。  
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
這篇內容,將會講解什麼是函式,以及與函式相關的知識。包括函式的簡介、Runtime Function、自訂函式、Script Function 腳本函式、Method 方法。
Thumbnail
Lua 開檔寫檔的運用 io.output()...
※ 介面是什麼: 介面:人跟電腦互相溝通的管道。 使用者與電腦互相溝通的方式稱為使用者的介面。 ※ 使用者的介面類型: 文字使用者介面:CUI。使用純鍵盤來下指令溝通,對象是伺服器(SERVER)。 圖型使用者介面:GUI。使用圖像去做點擊或拖拉的方式。 ※ 命令列(Command li
Thumbnail
可能包含敏感內容
學任何語文,就只有兩件事:輸入;輸出。 輸入跟輸出,就只有三種訊號:聲音;文字;文化。
Thumbnail
資訊輸入輸出就像攝影,每個人接受資訊,吸收理解程度都有所不同。如今資訊爆炸,隨時隨地都可以取得的時代,要學習將吸收的資訊轉化有用的產出,如此對我們的人生將更有幫助。資訊吸收還要整理才有用,整理心智,就可以進入心流。 本次推薦兩個線上工具:Notion電子筆記、 Xmindmap
Thumbnail
題目敘述 題目會給我們一組定義好的界面和需求,要求我們設計一個資料結構,可以滿足平均O(1)的插入元素、刪除元素、隨機取得元素的操作。 RandomizedSet() 類別建構子 bool insert(int val) 插入元素的function界面 bool remove(int val
Thumbnail
簡介 是以輸出為主題,並且從不同的面向介紹各種輸出的方法。 書中提到『要使人生變得更好,輸出很重要!』 在我們進行學習、不停的輸入的同時,必須要有效的把所學到的知識進行輸出,並且透過實際的運用,來強化記憶 書中從以下四個面向分別介紹輸出的方法 輸出的基本法則 以科學為基礎的表達術 激發
Thumbnail
介紹C++ 語法 資料型態,架構說明 程式語言為人類與電腦溝通的工具 程式設計流程: 定義問題 -> 問題分析 -> 撰寫演算法 ->程式撰寫 -> 程式執行及維護
Thumbnail
大家好,我是woody,是一名料理創作者,非常努力地在嘗試將複雜的料理簡單化,讓大家也可以體驗到料理的樂趣而我也非常享受料理的過程,今天想跟大家聊聊,除了料理本身,料理創作背後的成本。
Thumbnail
哈囉~很久沒跟各位自我介紹一下了~ 大家好~我是爺恩 我是一名圖文插畫家,有追蹤我一段時間的應該有發現爺恩這個品牌經營了好像.....快五年了(汗)時間過得真快!隨著時間過去,創作這件事好像變得更忙碌了,也很開心跟很多厲害的創作者以及廠商互相合作幫忙,還有最重要的是大家的支持與陪伴🥹。  
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
這篇內容,將會講解什麼是函式,以及與函式相關的知識。包括函式的簡介、Runtime Function、自訂函式、Script Function 腳本函式、Method 方法。
Thumbnail
Lua 開檔寫檔的運用 io.output()...
※ 介面是什麼: 介面:人跟電腦互相溝通的管道。 使用者與電腦互相溝通的方式稱為使用者的介面。 ※ 使用者的介面類型: 文字使用者介面:CUI。使用純鍵盤來下指令溝通,對象是伺服器(SERVER)。 圖型使用者介面:GUI。使用圖像去做點擊或拖拉的方式。 ※ 命令列(Command li
Thumbnail
可能包含敏感內容
學任何語文,就只有兩件事:輸入;輸出。 輸入跟輸出,就只有三種訊號:聲音;文字;文化。
Thumbnail
資訊輸入輸出就像攝影,每個人接受資訊,吸收理解程度都有所不同。如今資訊爆炸,隨時隨地都可以取得的時代,要學習將吸收的資訊轉化有用的產出,如此對我們的人生將更有幫助。資訊吸收還要整理才有用,整理心智,就可以進入心流。 本次推薦兩個線上工具:Notion電子筆記、 Xmindmap
Thumbnail
題目敘述 題目會給我們一組定義好的界面和需求,要求我們設計一個資料結構,可以滿足平均O(1)的插入元素、刪除元素、隨機取得元素的操作。 RandomizedSet() 類別建構子 bool insert(int val) 插入元素的function界面 bool remove(int val
Thumbnail
簡介 是以輸出為主題,並且從不同的面向介紹各種輸出的方法。 書中提到『要使人生變得更好,輸出很重要!』 在我們進行學習、不停的輸入的同時,必須要有效的把所學到的知識進行輸出,並且透過實際的運用,來強化記憶 書中從以下四個面向分別介紹輸出的方法 輸出的基本法則 以科學為基礎的表達術 激發
Thumbnail
介紹C++ 語法 資料型態,架構說明 程式語言為人類與電腦溝通的工具 程式設計流程: 定義問題 -> 問題分析 -> 撰寫演算法 ->程式撰寫 -> 程式執行及維護