在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ C/ 基本輸入輸出
動(dòng)態(tài)內(nèi)存
類和對(duì)象
接口 (抽象類)
結(jié)構(gòu)體
循環(huán)的類型
函數(shù)
數(shù)字
日期和時(shí)間
基本語(yǔ)法
多態(tài)
數(shù)據(jù)抽象
注釋
命名空間
字符串
預(yù)處理器
決策語(yǔ)句
修飾符的類型
鍙橀噺綾誨瀷
基本輸入輸出
操作符
數(shù)組
模板
多線程
繼承
Web 編程
信號(hào)處理
指針
存儲(chǔ)類型
概述
引用
常量
異常處理
開(kāi)發(fā)環(huán)境
重載
變量作用域
數(shù)據(jù)類型
數(shù)據(jù)封裝
文件和流

基本輸入輸出

C++ 標(biāo)準(zhǔn)庫(kù)提供了一組廣泛的的輸入/輸出功能,我們將在隨后的章節(jié)中展開(kāi)。本章將討論 C++ 編程所需的最基本和最常見(jiàn)的 I/O 操作。

C++ I/O發(fā)生在流中,流是一種字節(jié)序列。如果字節(jié)流從一個(gè)設(shè)備(如鍵盤(pán)、磁盤(pán)驅(qū)動(dòng)器,或網(wǎng)絡(luò)連接等)到主內(nèi)存,這稱為輸入操作(input operation)。如果字節(jié)從主內(nèi)存流向一個(gè)設(shè)備(如顯示屏,打印機(jī),磁盤(pán)驅(qū)動(dòng)器,或網(wǎng)絡(luò)連接等),這就是所謂的輸出操作(output operation)。

I/O 庫(kù)頭文件

下邊列出對(duì)于 C++ 程序重要的頭文件:

頭文件 功能和描述
<iostream> 這個(gè)頭文件定義了 cin、cout、cerrclog 對(duì)象,它們分別對(duì)應(yīng)于標(biāo)準(zhǔn)輸入流,標(biāo)準(zhǔn)輸出流,無(wú)緩沖標(biāo)準(zhǔn)錯(cuò)誤流和有緩沖標(biāo)準(zhǔn)錯(cuò)誤流。
<iomanip> 這個(gè)頭文件聲明了用于執(zhí)行格式化 I/O 操作的一系列服務(wù),即所謂的參數(shù)化流操作,如 setwsetprecision。
<fstream> 這個(gè)頭文件聲明了基于用戶控制的文件處理服務(wù)。我們將在文件和流相關(guān)的章節(jié)更詳細(xì)討論關(guān)于它的內(nèi)容。

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

預(yù)定義的對(duì)象 coutostream 類的一個(gè)實(shí)例。cout 對(duì)象通常連接到標(biāo)準(zhǔn)輸出設(shè)備,一般是顯示屏。cout 和流插入運(yùn)算符聯(lián)合使用,流插入運(yùn)算符寫(xiě)為 <<,即兩個(gè)表示小于的符號(hào),如以下示例所示。

    #include <iostream>

    using namespace std;

    int main( )
    {
       char str[] = "Hello C++";

       cout << "Value of str is : " << str << endl;
    }

編譯和執(zhí)行上面的代碼,運(yùn)行結(jié)果如下:

    Value of str is : Hello C++

C++ 編譯器也決定了輸出的變量數(shù)據(jù)類型并選擇適當(dāng)?shù)牧鞑迦脒\(yùn)算符來(lái)顯示值。<< 操作符重載了多種輸出數(shù)據(jù)項(xiàng)(包括各種內(nèi)置類型:整數(shù)、浮點(diǎn)數(shù)、雙精度浮點(diǎn)數(shù)、字符串和指針類型的值)。

插入運(yùn)算符<<在一個(gè)語(yǔ)句中可能不止一次被使用,如上所示,endl 寫(xiě)在結(jié)束的時(shí)候用于添加一個(gè)新行。

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

預(yù)定義對(duì)象 cinistream 類的一個(gè)實(shí)例。cin 對(duì)象通常用于標(biāo)準(zhǔn)輸入設(shè)備,一般是鍵盤(pán)。cin 和流提取運(yùn)算符聯(lián)合使用,流提取符號(hào)寫(xiě)為>>即兩個(gè)表示大于的符號(hào),如以下示例所示。

    #include <iostream>

    using namespace std;

    int main( )
    {
       char name[50];

       cout << "Please enter your name: ";
       cin >> name;
       cout << "Your name is: " << name << endl;

    }

編譯和執(zhí)行上面的代碼,它會(huì)提示輸入一個(gè)名稱。輸入一個(gè)值,然后回車,運(yùn)行結(jié)果如下:

    Please enter your name: cplusplus
    Your name is: cplusplus

C++ 編譯器也決定輸入值的數(shù)據(jù)類型和選擇適當(dāng)?shù)牧魈崛∵\(yùn)算符提取值并將其存儲(chǔ)在給定的變量。

流提取操作符>>可以在一個(gè)聲明中不止一次使用。請(qǐng)求多個(gè)數(shù)據(jù)時(shí),可采用以下書(shū)寫(xiě)形式:

    cin >> name >> age;

上述表達(dá)式等價(jià)于下面兩個(gè)聲明語(yǔ)句:

    cin >> name;
    cin >> age;

標(biāo)準(zhǔn)錯(cuò)誤流

預(yù)定義對(duì)象 cerrostream 類的一個(gè)實(shí)例。cerr 對(duì)象通常附加到標(biāo)準(zhǔn)錯(cuò)誤設(shè)備,這一般也是一個(gè)顯示屏,但對(duì)象 cerr 是無(wú)緩存的,每當(dāng)有流插入到 cerr 會(huì)導(dǎo)致其輸出立即出現(xiàn)。

cerr 也與流插入操作符一起使用,如以下示例所示。

    #include <iostream>

    using namespace std;

    int main( )
    {
       char str[] = "Unable to read....";

       cerr << "Error message : " << str << endl;
    }

編譯和執(zhí)行上面的代碼,運(yùn)行結(jié)果如下:

    Error message : Unable to read....

標(biāo)準(zhǔn)日志流

預(yù)定義對(duì)象 clogostream 類的一個(gè)實(shí)例。clog 對(duì)象通常附加到標(biāo)準(zhǔn)錯(cuò)誤設(shè)備,這一般也是一個(gè)顯示屏,但對(duì)象 clog 是有緩沖的。這意味著每個(gè)插入的 clog 會(huì)暫存在緩沖區(qū)中,直到緩沖區(qū)滿或者緩沖區(qū)刷新才會(huì)產(chǎn)生一次輸出。

clog 也與流插入操作符一起使用,如以下示例所示。

    #include <iostream>

    using namespace std;

    int main( )
    {
       char str[] = "Unable to read....";

       clog << "Error message : " << str << endl;
    }

編譯和執(zhí)行上面的代碼,運(yùn)行結(jié)果如下:

    Error message : Unable to read....

在這些小例子中,你可能無(wú)法看出 cout,cerr,clog 的區(qū)別,但在編寫(xiě)、執(zhí)行大項(xiàng)目時(shí),差異就變得顯而易見(jiàn)了。所以這是很好的應(yīng)用實(shí)踐:使用 cerr 流顯示錯(cuò)誤消息,而使用 clog 顯示其他日志信息。

上一篇:函數(shù)下一篇:操作符