IO標準庫——②控制檯輸入輸出

iostream庫簡介

iostream庫包含兩個基本基礎類型istream和ostream,分別表示輸入流和輸出流。

一個流就是一個字符序列,是從IO設備讀出或寫入IO設備的。

istream類型對象和ostream類型對象

標準庫iostream定義了4個IO對象,分別爲:

  • istream類型對象cin:
    • 爲了處理輸入,我們使用一個名爲cin的istream類型對象,這個對象也被稱爲標準輸入
  • ostream類型對象cout、cerr、clog:
    • 爲了處理輸出,我們使用一個名爲cout的ostream類型對象,這個對象也被稱爲標準輸出
    • 名爲cerr的ostream類型對象被稱爲標準錯誤,通常用來輸出警告和錯誤消息。
    • 名爲clog的ostream類型對象則用來輸出程序運行時的一般性信息。

系統通常將程序所運行的窗口與這些對象關聯起來。因此,

  • 當我們讀取cin,數據將從程序正在運行的窗口讀入。
  • 當我們向cout、cerr、clog寫入數據時,將會寫到同一個窗口。

輸入運算符和輸出運算符

輸出運算符<<

輸出運算符<<接受兩個運算對象:左側運算對象必須是一個ostream類型對象,右側的運算對象是要打印的值。

輸出運算符<<將給定的值寫到給定的ostream類型對象中。

輸出運算符<<的計算結果就是其左側運算對象,即計算結果就是我們寫入給定值的那個ostream類型對象。

這裏寫圖片描述

由於輸出運算符<<的計算結果就是其左側運算對象,所以我們可以將一系列輸出請求合併到單一語句中。

cout << "Enter two number:" << endl;

等價於

cout << "Enter two number:";
cout << endl;

輸入運算符>>

輸入運算符>>接受兩個運算對象:左側運算對象必須是一個istream類型對象,右側的運算對象是一個普通對象。

輸入運算符>>從給定的istream類型對象讀入數據,並存入給定對象中。

輸入運算符>>的計算結果就是其左側運算對象。

這裏寫圖片描述

由於輸入運算符>>的計算結果就是其左側運算對象,所以我們可以將一系列輸入請求合併到單一語句中。

cin >> v1 >> v2;

等價於

cin >> v1;
cin >> v2;

getline函數

由於,在執行讀操作時,string對象會自動忽略開頭的空白(空格符,換行符,製表符等)並從第一個真正的字符開始讀起,直到遇見下一處空白。

有時候,我們希望能在最終得到的字符串中保留輸入的空白符,這時應該用getline函數代替原來的輸入運算符>>。

getline函數的參數是一個輸入流和一個string對象,函數從給定的輸入流中讀入內容,直到遇到換行符爲止(換行符也被讀進來了),然後把所讀到的內容存入那個string對象中去(注意不存換行符)。

getline函數只要一遇到換行符就結束讀取操作並返回結果,哪怕輸入的一開始就是換行符也是如此,此時結果是個空string。

這裏寫圖片描述

string line;
while (getline(cin , line))
{
    cout << line << endl;
}
return 0;

示例demo

cout << "Enter two number : " << endl;
int v1 = 0 , v2 = 0;
cin >> v1 >> v2;
cout << "The sum of " << v1 << " and " << v2 << " is " << v1 + v2 << endl;
return 0;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章