iostream使用時注意事項

2021-08-27 00:21:40 字數 670 閱讀 7771

標準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...