日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ifstream note

發(fā)布時(shí)間:2025/3/21 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ifstream note 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

-------------------------20100804-------------------------------------------

3 fstream對(duì)象未初始化時(shí), 使用if()判斷時(shí), 返回true;

ifstream ff;

cout << int(bool(ff)); //將會(huì)輸出1

?

4 close多次調(diào)用, 最終含義不一樣: windows上打開的文件被關(guān)閉多次后, fstream對(duì)象將不能再次使用; cent os上可以

ifstream ff;

ff.open("2.txt");

ff.close();

ff.close();

ff.open("2.txt");

cout << int(ff.is_open() && ff.good());

?

最后一條語句在windows上將會(huì)輸出0, 在cent os上將會(huì)輸出1。

?

5 未初始化的fstream對(duì)象被認(rèn)為是好的, 只不過一被讀取就到達(dá)eof了;

讀取一個(gè)不存在的文件后,fstream對(duì)象的狀態(tài)就為false(bad)了

?

----------------------------------------------------------------------------------

1 讀取status

ifstream f1("filename");

?

char buf[max];

while(f1.getline(buf, max))

{

??? //do something

}

?

假設(shè)文件有3行, while循環(huán)體執(zhí)行幾次? getline執(zhí)行幾次?

答: while循環(huán)體內(nèi)執(zhí)行3次, 但是getline成功執(zhí)行4次。

因?yàn)?#xff0c; 當(dāng)getline成功執(zhí)行第3次后,文件的狀態(tài)還是有效的; 再次執(zhí)行g(shù)etline時(shí),buf被置空且f1的status被設(shè)置為eof.

最好使用此種標(biāo)準(zhǔn)的寫法, 程序會(huì)更簡潔不易錯(cuò)

?

?

2 當(dāng)文件已經(jīng)是eof時(shí), seekg函數(shù)將不起任何作用, 此時(shí)tellg返回-1。 如果需要重設(shè)讀寫位置, 必需首先調(diào)用 f1.clear(),該函數(shù)將清除文件的狀態(tài)

f1.clear();

f1.seekg(10, ios::beg|cur|end);

?

總結(jié)

以上是生活随笔為你收集整理的ifstream note的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。