使用C++ iostream進行輸入輸出流操作

一、istream和ostream基本介紹

在C++中,iostream庫提供了兩個基本的流類:istream和ostream。這兩個類分別代表了輸入和輸出流。istream類提供了從輸入設備(如鍵盤)讀取內容的功能,而ostream類則提供向輸出設備(如控制台)寫入內容的功能。其實,iostream庫中的其他流類都是通過這兩個基本的流類派生出來的。

對於輸入流和輸出流,我們可以用cin和cout這兩個標準流來進行操作。例如:

#include <iostream>
using namespace std;
int main() {
    int num;
    cout << "請輸入一個整數:" << endl;
    cin >> num;
    cout << "你輸入的是:" << num << endl;
    return 0;
}

上面的代碼使用了cin和cout來分別進行輸入和輸出操作。其中,endl代表換行符,<<則為”流插入運算符”,用於將右側的內容插入到左側的流之中;>>則為”流提取運算符”,用於從右側的流中提取內容到左側的變數中。這兩個運算符的詳細信息可以在iostream庫中找到。

二、輸入流的相關操作

C++中,輸入流有很多種讀取方式,下面介紹其中的幾種:字元輸入、字元串輸入、按格式輸入等。

1. 字元輸入

get()函數可以從一個流中讀取一個字元。get()函數有兩種調用方式:

int get();
istream& get(char& ch);

第一種調用方式返回讀取的字元,而第二種調用方式則是將讀取到的字元存儲在一個char類型的變數中,並通過返回一個istream的引用來讓調用代碼可以繼續使用cin等流類。以下是示例代碼:

#include <iostream>
using namespace std;
int main() {
    char ch;
    cin.get(ch);  // 讀取一個字元
    cout << "讀取到的字元是 " << ch << endl;
    return 0;
}

2. 字元串輸入

getline()函數可以從一個流中讀取一行字元串。getline()函數有兩種調用方式:

istream& getline (istream& is, string& str, char delim);
istream& getline (istream& is, string& str);

第一種調用方式需要指定一個字元串結束的分隔符,而第二種調用方式則默認使用換行符作為字元串的結束標誌。以下是示例代碼:

#include <iostream>
#include <string>
using namespace std;
int main() {
    string str;
    getline(cin, str);  // 讀取一行字元串
    cout << "讀取到的字元串是 " << str << endl;
    return 0;
}

3. 按格式輸入

可以使用cin的格式化輸入函數來實現按照指定格式讀取輸入數據,例如scanf()一樣的佔位符%d、%f等,或者使用std::ios::setw(n)來設置讀取的寬度。以下是示例代碼:

#include <iomanip>   // 需要包含這個頭文件
#include <iostream>
using namespace std;
int main() {
    int a, b;
    cout << "請輸入兩個整數:";
    cin >> setw(5) >> a;  // 最多讀取5個字元
    cin.ignore();   // 忽略掉一個字元
    cin >> b;
    cout << "讀取到的數據是:" << a << ", " << b << endl;
    return 0;
}

三、輸出流的相關操作

C++中,輸出流也有很多種寫入方式,下面介紹其中的幾種:字元輸出、字元串輸出、按格式輸出等。

1. 字元輸出

put()函數可以將一個字元寫入到某個流中。以下是示例代碼:

#include <iostream>
using namespace std;
int main() {
    char ch = 'a';
    cout.put(ch);  // 輸出一個字元
    return 0;
}

2. 字元串輸出

可以使用cout來輸出一個字元串或者字元數組,也可以使用write()函數輸出一段二進位數據。以下是示例代碼:

#include <iostream>
#include <string>
using namespace std;
int main() {
    string str = "Hello World!";
    cout << str << endl;  // 輸出一個字元串
    char buffer[] = { 'h', 'e', 'l', 'l', 'o' };
    cout.write(buffer, sizeof(buffer));  // 輸出一段二進位數據
    return 0;
}

3. 按格式輸出

可以使用cout的格式化輸出函數來實現按照指定格式輸出數據,例如printf的佔位符%d、%f等,或者使用std::ios::setw(n)來設置輸出的寬度。以下是示例代碼:

#include <iomanip>   // 需要包含這個頭文件
#include <iostream>
using namespace std;
int main() {
    int a = 123, b = 456;
    cout << setw(5) << a << ", " << setw(5) << b << endl;
    return 0;
}

四、總結

通過本文的介紹,我們了解了C++ iostream庫的兩個基本流類:istream和ostream,以及它們的常見輸入輸出操作。還涉及了如字元輸入、字元串輸入、按格式輸入、字元輸出、字元串輸出、按格式輸出等內容。希望讀者在使用C++ iostream進行輸入輸出操作時,能夠更加得心應手!

原創文章,作者:IFKI,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/133767.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
IFKI的頭像IFKI
上一篇 2024-10-04 00:01
下一篇 2024-10-04 00:01

相關推薦

  • Python棧操作用法介紹

    如果你是一位Python開發工程師,那麼你必須掌握Python中的棧操作。在Python中,棧是一個容器,提供後進先出(LIFO)的原則。這篇文章將通過多個方面詳細地闡述Pytho…

    編程 2025-04-29
  • Python操作數組

    本文將從多個方面詳細介紹如何使用Python操作5個數組成的列表。 一、數組的定義 數組是一種用於存儲相同類型數據的數據結構。Python中的數組是通過列表來實現的,列表中可以存放…

    編程 2025-04-29
  • Python操作MySQL

    本文將從以下幾個方面對Python操作MySQL進行詳細闡述: 一、連接MySQL資料庫 在使用Python操作MySQL之前,我們需要先連接MySQL資料庫。在Python中,我…

    編程 2025-04-29
  • Python磁碟操作全方位解析

    本篇文章將從多個方面對Python磁碟操作進行詳細闡述,包括文件讀寫、文件夾創建、刪除、文件搜索與遍歷、文件重命名、移動、複製、文件許可權修改等常用操作。 一、文件讀寫操作 文件讀寫…

    編程 2025-04-29
  • Python代碼實現迴文數最少操作次數

    本文將介紹如何使用Python解決一道經典的迴文數問題:給定一個數n,按照一定規則對它進行若干次操作,使得n成為迴文數,求最少的操作次數。 一、問題分析 首先,我們需要了解迴文數的…

    編程 2025-04-29
  • Python元祖操作用法介紹

    本文將從多個方面對Python元祖的操作進行詳細闡述。包括:元祖定義及初始化、元祖遍歷、元祖切片、元祖合併及比較、元祖解包等內容。 一、元祖定義及初始化 元祖在Python中屬於序…

    編程 2025-04-29
  • Python列表的讀寫操作

    本文將針對Python列表的讀取與寫入操作進行詳細的闡述,包括列表的基本操作、列表的增刪改查、列表切片、列表排序、列表反轉、列表拼接、列表複製等操作。 一、列表的基本操作 列表是P…

    編程 2025-04-29
  • 如何用Python對數據進行離散化操作

    數據離散化是指將連續的數據轉化為離散的數據,一般是用於數據挖掘和數據分析中,可以幫助我們更好的理解數據,從而更好地進行決策和分析。Python作為一種高效的編程語言,在數據處理和分…

    編程 2025-04-29
  • Python序列的常用操作

    Python序列是程序中的重要工具,在數據分析、機器學習、圖像處理等很多領域都有廣泛的應用。Python序列分為三種:列表(list)、元組(tuple)和字元串(string)。…

    編程 2025-04-28
  • Python獲取Flutter上內容的方法及操作

    本文將從以下幾個方面介紹Python如何獲取Flutter上的內容: 一、獲取Flutter應用數據 使用Flutter提供的Platform Channel API可以很容易地獲…

    編程 2025-04-28

發表回復

登錄後才能評論