0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

C++的輸入流和輸出流介紹

jf_78858299 ? 來源:QStack ? 作者:月下西樓 ? 2023-04-30 17:58 ? 次閱讀

背景

C++的輸入流和輸出流是C++標(biāo)準(zhǔn)庫中的兩個重要的流類,分別用于輸入和輸出數(shù)據(jù)。在本篇博客中,我們將詳細(xì)介紹C++的輸入流和輸出流,包括流的概念、流的類型、流的操作和流的應(yīng)用等方面。

什么是流

在C++中,流是一種抽象的數(shù)據(jù)類型,用于表示數(shù)據(jù)的輸入和輸出。流可以是文件、鍵盤、屏幕、網(wǎng)絡(luò)等數(shù)據(jù)源或數(shù)據(jù)目的地。流的輸入和輸出是以字符為單位進(jìn)行的,可以是字符、整數(shù)、浮點數(shù)、字符串等數(shù)據(jù)類型。

C++標(biāo)準(zhǔn)庫中提供了兩個重要的流類:輸入流和輸出流。輸入流用于從數(shù)據(jù)源中讀取數(shù)據(jù),輸出流用于向數(shù)據(jù)目的地中寫入數(shù)據(jù)。輸入流和輸出流都是基于流緩沖區(qū)的,可以提高數(shù)據(jù)的讀寫效率。

流的分類

在C++中,流可以分為兩種類型:文本流和二進(jìn)制流。文本流是以文本形式讀寫數(shù)據(jù),可以讀寫字符、字符串、整數(shù)、浮點數(shù)等數(shù)據(jù)類型。二進(jìn)制流是以二進(jìn)制形式讀寫數(shù)據(jù),可以讀寫任意類型的數(shù)據(jù),包括結(jié)構(gòu)體、數(shù)組、指針等數(shù)據(jù)類型。

C++標(biāo)準(zhǔn)庫中提供了多種流類,包括:

  • istream:輸入流類,用于從數(shù)據(jù)源中讀取數(shù)據(jù)。
  • ostream:輸出流類,用于向數(shù)據(jù)目的地中寫入數(shù)據(jù)。
  • ifstream:文件輸入流類,用于從文件中讀取數(shù)據(jù)。
  • ofstream:文件輸出流類,用于向文件中寫入數(shù)據(jù)。
  • fstream:文件流類,既可以讀取文件,也可以寫入文件。
  • stringstream:字符串流類,用于讀寫字符串。
  • istringstream:字符串輸入流類,用于從字符串中讀取數(shù)據(jù)。
  • ostringstream:字符串輸出流類,用于向字符串中寫入數(shù)據(jù)。

流的操作

在C++中,流的操作包括輸入操作和輸出操作。輸入操作用于從流中讀取數(shù)據(jù),輸出操作用于向流中寫入數(shù)據(jù)。流的輸入和輸出操作都是以運算符的形式進(jìn)行的,包括:

  • 輸入運算符(>>):用于從流中讀取數(shù)據(jù)。
  • 輸出運算符(<<):用于向流中寫入數(shù)據(jù)。 例如,下面的代碼演示了如何使用輸入流和輸出流讀寫數(shù)據(jù):
#include 
#include 
using namespace std;

int main() {
    int x, y;
    ofstream fout("data.txt");
    fout << 123 << " " << 456 << endl;
    fout.close();
    ifstream fin("data.txt");
    fin >> x >> y;
    cout << x << " " << y << endl;
    fin.close();
    return 0;
}

在這個例子中,首先使用ofstream類創(chuàng)建了一個文件輸出流,向文件中寫入了兩個整數(shù)。然后使用ifstream類創(chuàng)建了一個文件輸入流,從文件中讀取了兩個整數(shù),并打印出來。

標(biāo)準(zhǔn)輸入輸出流

標(biāo)準(zhǔn)輸入輸出流是C++中最常用的流類,用于從鍵盤讀取輸入和向屏幕輸出數(shù)據(jù)。在C++中,標(biāo)準(zhǔn)輸入輸出流分別對應(yīng)于cin和cout對象。cin對象用于從鍵盤讀取輸入,cout對象用于向屏幕輸出數(shù)據(jù)。例如:

#include 
using namespace std;

int main() {
    int num;
    cout << "請輸入一個整數(shù):";
    cin >> num;
    cout << "您輸入的整數(shù)是:" << num << endl;
    return 0;
}

在這個例子中,我們使用了cin對象從鍵盤讀取輸入,使用了cout對象向屏幕輸出數(shù)據(jù)。

文件輸入輸出流

文件輸入輸出流用于從文件中讀取數(shù)據(jù)或向文件中寫入數(shù)據(jù)。在C++中,文件輸入輸出流分別對應(yīng)于ifstream和ofstream類。ifstream類用于從文件中讀取數(shù)據(jù),ofstream類用于向文件中寫入數(shù)據(jù)。例如:

#include 
#include 
using namespace std;

int main() {
    ofstream outfile("example.txt");
    outfile << "Hello, World!" << endl;
    outfile.close();

    ifstream infile("example.txt");
    string content;
    getline(infile, content);
    cout << content << endl;
    infile.close();

    return 0;
}

在這個例子中,我們使用了ofstream類向文件中寫入數(shù)據(jù),使用了ifstream類從文件中讀取數(shù)據(jù)。

字符串流

字符串流用于將數(shù)據(jù)讀取到字符串中或?qū)⒆址畬懭氲搅髦?。在C++中,字符串流分別對應(yīng)于istringstream和ostringstream類。istringstream類用于將數(shù)據(jù)讀取到字符串中,ostringstream類用于將字符串寫入到流中。例如:

#include 
#include 
using namespace std;

int main() {
    int num = 0;
    string content = "您輸入的整數(shù)是:123";
    istringstream iss(content);
    string str;
    iss >> str;
    iss >> num;
    cout << str << " " << num << endl;
    return 0;
}

在這個例子中,我們使用了istringstream類將字符串中的數(shù)據(jù)讀取到變量中。首先,我們定義了一個int類型的變量num,并將其初始化為0。然后,我們定義了一個字符串流對象iss,并將字符串content傳入其中。接著,我們定義了一個string類型的變量str,并使用iss對象從字符串中讀取第一個單詞“您輸入的整數(shù)是:”。最后,我們使用iss對象從字符串中讀取第二個單詞“123”,并將其賦值給num變量。最終,我們使用cout輸出str和num的值。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • C++
    C++
    +關(guān)注

    關(guān)注

    21

    文章

    2100

    瀏覽量

    73453
  • 數(shù)據(jù)類型
    +關(guān)注

    關(guān)注

    0

    文章

    236

    瀏覽量

    13596
  • 數(shù)組
    +關(guān)注

    關(guān)注

    1

    文章

    412

    瀏覽量

    25880
收藏 人收藏

    評論

    相關(guān)推薦

    C++編程思想第二卷_刁成嘉譯

    本書介紹C++實用的編程技術(shù)和最佳的實踐方法,深入探究了異常處理方法和異常安全設(shè)計;介紹C++的字符串、輸入輸出
    發(fā)表于 10-21 17:01 ?0次下載

    C++反編譯中控制圖優(yōu)化方法研究

    控制分塊是反編譯系統(tǒng)中基本的功能之一。介紹了控制分塊方法,分析了C++語言與C語言的區(qū)別,指出了現(xiàn)有的控制
    發(fā)表于 11-14 10:53 ?10次下載
    <b class='flag-5'>C++</b>反編譯中控制<b class='flag-5'>流</b>圖優(yōu)化方法研究

    C++C/C++程序設(shè)計教程_C/C++概述

    C++基礎(chǔ)知識,簡要介紹C++的一些簡單知識,概念,函數(shù)
    發(fā)表于 12-25 10:15 ?0次下載

    C++實驗 類和對象——學(xué)生基本信息輸入輸出

    C++實驗 類和對象——學(xué)生基本信息輸入輸出
    發(fā)表于 12-30 14:50 ?0次下載

    java中的io分析

    ,它們可以是計算機(jī)內(nèi)存的某些區(qū)域,也可以是磁盤文件,甚至可以是Internet上的某個URL。 的方向是重要的,根據(jù)的方向,可分為兩類:輸入流
    發(fā)表于 09-27 14:51 ?0次下載
    java中的io<b class='flag-5'>流</b>分析

    基礎(chǔ):Java IO學(xué)習(xí)總結(jié)

    IO的分類 根據(jù)處理數(shù)據(jù)類型的不同分為:字符和字節(jié)流 根據(jù)數(shù)據(jù)流向不同分為:輸入流輸出
    發(fā)表于 03-08 14:38 ?2061次閱讀

    C++輸入/輸出

    C++輸入/輸出類庫是用派生方法建立起的,它有2個平行的基類,streambuf和ios。其他的類都是從這兩個基類直接或間接派生的。
    發(fā)表于 02-26 14:07 ?903次閱讀

    Visual C++教程之C++的基礎(chǔ)知識介紹

    本文檔的主要內(nèi)容詳細(xì)介紹的是Visual C++教程之C++的基礎(chǔ)知識介紹主要內(nèi)容包括了:1 類和對象,2 類的成員及特性,3 繼承和派生類
    發(fā)表于 02-15 15:59 ?9次下載
    Visual <b class='flag-5'>C++</b>教程之<b class='flag-5'>C++</b>的基礎(chǔ)知識<b class='flag-5'>介紹</b>

    C++程序設(shè)計教程之輸入輸出的詳細(xì)資料說明

    本文檔詳細(xì)介紹的是C++程序設(shè)計教程之輸入輸出的詳細(xì)資料說明主要內(nèi)容包括了:1. C++輸入
    發(fā)表于 03-14 16:39 ?8次下載
    <b class='flag-5'>C++</b>程序設(shè)計教程之<b class='flag-5'>輸入輸出</b><b class='flag-5'>流</b>的詳細(xì)資料說明

    VC++簡單的輸入輸出教程詳細(xì)說明

    iostream.h iostream.h:包含輸入輸出的頭文件 在使用C++輸入輸出之前,必須在程序的開頭增加一行: #include 《iostream.h》
    發(fā)表于 03-19 16:03 ?4次下載
    VC++簡單的<b class='flag-5'>輸入輸出</b>教程詳細(xì)說明

    圖文詳解:C++輸出輸入

    圖文詳解:C++輸出輸入
    的頭像 發(fā)表于 06-29 14:53 ?3353次閱讀
    圖文詳解:<b class='flag-5'>C++</b>的<b class='flag-5'>輸出</b><b class='flag-5'>輸入</b>

    C++輸入輸出的真實面目

    C++輸入輸出C++里std::cin、std::cout、std::cerr和std::endl分別是標(biāo)準(zhǔn)輸入、標(biāo)準(zhǔn)
    的頭像 發(fā)表于 09-29 15:22 ?1723次閱讀

    C++創(chuàng)建鏈表并輸出

    使用C++代碼創(chuàng)建一個鏈表并輸出。
    的頭像 發(fā)表于 01-10 15:05 ?1147次閱讀

    C++學(xué)習(xí)筆記之c++的基本認(rèn)識

    自這篇文章我們即將開始C++的奇幻之旅,其內(nèi)容主要是讀C++ Primer的總結(jié)和筆記,有興趣可以找原版書看看,對于學(xué)習(xí)C++還是有很大幫助的。這篇文章將從一個經(jīng)典的程序開始介紹
    的頭像 發(fā)表于 03-17 13:57 ?690次閱讀

    幾種常用Reader輸入流的使用方式

    上次聊到了 java 的字節(jié)流 InputStream,今天來看看它的好朋友 Reader 字符。 Reader java 中的 IO 輸入流不是只有 InputStream 還有按字符輸入
    的頭像 發(fā)表于 10-10 15:46 ?584次閱讀