C++ Primer 筆記——輸入輸出

來源:互聯網
上載者:User

標籤:mac   put   alt   對象   檢查   class   內容   基類   檔案   

1.C++語言並未定義任何輸入輸出語句,取而代之,包含了一個全面的標準庫來提供IO機制。

由能夠知道,I/O操作的基類是ios_base,各個類的用途例如以下:

  • <iostream>
  •                      istream    從流中讀取資料
  •                      ostream   向流中寫資料
  •                      iostream  對流進行讀寫操作。派生於istream和ostream
  • <fstream>
  •                      ifstream    從檔案裡讀取資料。派生於istream
  •                      ofstream   向檔案裡寫資料,派生於ostream
  •                      fstream     讀寫檔案, 派生於iostream
  • <sstream>
  •                      istringstream    讀取string對象。派生於istream
  •                      ostringstream   寫string對象。派生於ostream
  •                      stringstream     讀寫string對象,派生於iostream

 

2.C與C++處理輸入輸出的方式不同,我們從C語言的輸入輸出可以很明顯看出是函數調用方式,而C++的則是對象模式,iostream類是派生於ostream類和istream類,而cout和cin是ostream類和istream類的對象。

 

3. std::endl 實質上是一個函數,它做了兩件事情:輸出一個 ‘\n‘ 並重新整理緩衝區。

// VS2015編譯器上的定義    // MANIPULATORStemplate<class _Elem,    class _Traits> inline    basic_ostream<_Elem, _Traits>&        __CLRCALL_OR_CDECL endl(basic_ostream<_Elem, _Traits>& _Ostr)    {    // insert newline and flush stream    _Ostr.put(_Ostr.widen(‘\n‘));    _Ostr.flush();    return (_Ostr);    }
    // 以下三個語句是等價的    std::cout << std::endl;    std::cout << &std::endl;    std::cout << ‘\n‘ << std::flush;

 

4.因為系統在閒置時候會不停的檢查緩衝區,如果發現新內容,將重新整理緩衝區,這也是為什麼我們不用std::endl或std::flush時也可以正常輸出的原因。

 

5.當從鍵盤向程式輸入資料時,對於如何指出檔案結束,不同作業系統有不同的約定。在Windows系統中,輸入檔案結束符的方法是Ctrl + Z,然後按Enter或Return鍵。在UNIX系統中,包括Mac OS X系統中,檔案結束符輸入是用Ctrl+D。

 

6.我們在輸入的過程中,可以用一些std::cin的函數來判斷輸入的結果是否正確。

    // 以下返回都是bool值    std::cin.bad();        // 輸入資料流出現致命性錯誤,不可挽回     std::cin.fail();    // 輸入資料流出現非致命性錯誤,可挽回    std::cin.eof();        // 輸入資料流出到達檔案結尾    std::cin.good();    // 輸入資料流完全正常

 

C++ Primer 筆記——輸入輸出

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.