1. C++ 程序一般在用戶按下回車鍵時刷新輸入緩衝區。 ios
C++ I/O定義了一些類模板,以支持char 和 what_t 數據。使用typedef工具,C++使得這些模板char具體化到能模仿傳統的非模板I/O實現。下面是相關類: c++
要使用這些工具,必須使用適當的類對象。例如cin cout。 數據庫
2. 重載的<<操做符 函數
<< 默認含義是按位左移操做符,可是ostream類從新定義了<<操做符,方法是將其重載爲輸出。 工具
在這種狀況下,<<叫作插入操做符,而不是左移操做符。插入操做符被重載,使之可以識別C++中多有基本類型。ostream都提供了operator<<() 函數的定義。 編碼
例如: ostream & perator<<(int) 表示函數接受一個int參數。 spa
3. write()顯示整個字符串,模板原型爲: 對象
basic_ostream<charT, traits>& write(const char_type* s, streamsize n); 繼承
cout.wirite() 調用cout對象,由於write方法返回一個指向調用它的對象的引用,這裏調用它的對象是cout. 索引
write方法並不會在遇到空字符時自動中止打印字符,而只是打印指定數目的字符,即便超過了字符串的邊界!
writ()方法也能夠用於數值數據,能夠將地址強制轉換爲char*,而後傳遞給它。
long val = 4545121212;
cout.write((char*) &val, sizeof(long));
4. 刷新緩衝區
緩衝區被填滿,程序將flush刷新緩衝區,把內容發出去,並清空緩衝區,以存儲新的數據。
一般緩衝區爲512字節或其整數倍。
可是,在屏幕輸出時,不用等到緩衝區填滿,例如將換行符發送到緩衝區,將刷新緩衝區;另外輸入即將發生緩衝區刷新。
實際上,控制符也是函數。 例,能夠直接調用flush()來刷新cout緩衝區; flush(cout);
5. c++ 將十六進制和八進制都視爲無符號的。
6. 使用cin進行輸入
cin對象將標準輸入表示爲字節流。輸入流的方法,跳過空白(space, enter, tab),直到遇到非空白字符。即便對於單字符模式,>>操做符將讀取一個指定類型的數據。也就是說,它讀取從非空白字符開始,到與目標類型不匹配的第一個字符之間的所有內容。
7. 流狀態
設置狀態
clear() 在輸入不匹配或到達文件尾時,須要使用不帶參數的clear()從新打開輸入。
setstate() 爲了輸入和輸出函數提供一種修改狀態的途徑。例如:setstate(eofbit)
8. get(char&) 和 get(void) 提供不跳過空白的單字符輸入功能。
cin.get(ch)指向istream對象的引用,到達文件末尾時函數返回值,轉換爲false
cin.get(void)字符編碼 int, 到達文件末尾時函數的返回值是EOF
9. 字符串輸入:getline() get() ignore()
get()將換行符留在輸入流中,這樣接下來的輸入操做首先將看到換行符;
getline()抽取並丟棄輸入流中的換行符。
10. 文件輸入和輸出
字處理程序建立文件;數據庫程序建立和搜索信息文件;編譯器讀取源代碼文件並生成可執行文件。文件自己是存儲在某種設備上的一系列字節。
11. 隨機存取
隨機存取指的是直接移動(不是依次移動)到文件的任何位置。隨機存取一般被用於數據庫文件,程序維護一個獨立的索引文件,該文件指出數據在主數據文件中的位置。
12. cin.get(char)成員函數調用經過返回轉換爲false的bool值來指出已達到EOF, 而cin.get()成員函數調用則經過返回EOF值來指出已達到EOF,EOF在文件iostream中定義的。