1、IO類系統認識
(1)、IO類簡介
(2)、IO類之間的關係
2、IO類的典型的性質
(1)、IO對象無拷貝或賦值
在平常的操作函數中通常以引用或指針方式傳遞或返回。
因爲C++在設計之初就這樣設計規定的。
why?
我認爲像IO這種資源,是不允許多個對象同時訪問,及他們的訪問時互斥的;所以就不允許拷貝或複製,以免造成多個對象同時對同一IO資源進行造作。
例如:
iostream &print(iostream &io, fstream *fs){ ...} // 正確,參數和返回以引用或指針形式傳遞
iostream print(iostream io){ ...} // 錯誤,參數和返回以拷貝方式傳遞會發生複製和賦值操作
(2)、IO類的狀態操作流的四種狀態:
流獲取狀態的方法:
流狀態操作:
操作示例:
(3)、緩衝區
3、文件流操作
(1)、三個成員函數
(2)、流指針操作
(3)、常見的函數使用
cin輸入會忽略空格,回車等,如果不想忽略可加noskipws
c=cin.get()等價於cin.get(c),可讀取空格,回車等字符。
cin.get(char c[ ],int n,char c)讀取(n-1)個字符保存到c[ ]數組中,最後一個默認爲‘\0’;遇到字符
c則提前結束。未讀取的字符,後面可繼續讀取。
一行如果未讀完,則流就會出錯。
getline(cin.str),讀取一行字符串