標準io庫在3個頭檔案中定義:iostream是從流中讀寫,fstream是從檔案的讀寫,而sstream是從字串中去讀寫。
io物件有乙個很重要的特點,就是不能複製或者賦值。這意味兩點:第一,io物件不能儲存在容器中,第二,形參或者函式的返回值也不能是io型別。如果需要傳遞io物件,則需要使用引用。
io操作有可能是正確的,也有可能是錯誤的。錯誤的io操作將會導致嚴重的後果,因此io可定義了一些io狀態和一些函式來判斷io的狀態。舉乙個例子:
int ival;
while(cin>>ival)
cout<
這段**看起來似乎沒有什麼問題,但是如果在輸入時並沒有按照要求輸入整形,而輸入的是字元型,那麼就會產生乙個錯誤的狀態。這個流就無法使用了。
怎麼改進這個問題呢?先看乙個函式:
#include std::istream& get(std::istream& in)
//正常讀入時輸出這個資料以及空格
std::cout<
有了這個函式,我們在主函式中可以呼叫:
int dval;
get(cin);
//重新使用恢復後的流
cin>>dval;
cout<
如果輸入的資料有誤,則會列印提示"bad data, try agian。但是流會被重新置為可以使用的狀態。
Selectors使用時注意事項
1.serversocketchannel和socketchannel必須配置成非阻塞的 2.每次輪詢後,得到selectionkey後,必須從選擇集裡remove掉 iteratorkeys selector.selectedkeys iterator while keys.hasnext 3.如...
removeChild使用時注意事項
假如 一段普通的 其中gift list為乙個table的id var giftbody document.getelementbyid gift list getelementsbytagname tbody 0 var gifttrs giftbody.getelementsbytagname ...
grid 報表使用時注意事項
開始使用 grid report 可以在 visual c net 與 visual basic.net 下的 winform 專案中使用。在專案中使用 grid report 之前,首先必須對 grid report 的引用。在 visual studio.net 2003 2005 2008 2...