從舊blog轉(zhuǎn)移過來的。
前些日子寫數(shù)據(jù)庫實(shí)驗(yàn)的時(shí)候,為了這些知識(shí)沒少頭疼過,基礎(chǔ)貧弱啊。
ios::app: 以追加的方式打開文件?
ios::ate: 文件打開后定位到文件尾,ios:app就包含有此屬性?
ios::binary:? 以二進(jìn)制方式打開文件,缺省的方式是文本方式。兩種方式的區(qū)別見前文?
ios::in: ?文件以輸入方式打開?
ios:out: 文件以輸出方式打開?
ios::nocreate:?不建立文件,所以文件不存在時(shí)打開失敗 ?
ios::noreplace:不覆蓋文件,所以打開文件時(shí)如果文件存在失敗?
ios::trunc: 如果文件存在,把文件長(zhǎng)度設(shè)為0
說下某些地方用過之后的驚奇吧(說驚奇其實(shí)只是自己之前把知識(shí)理解歪了而已)。
ios::app,該模式只能把數(shù)據(jù)添加到文件的尾部,如果想修改別的地方是不行的,因?yàn)閟eekp()根本不起作用,指針總是指向末尾,而我之前一直誤解該模式等價(jià)于ios::out | ios::nocreate。
ios::in | ios::app,也是拜對(duì)ios::app的錯(cuò)誤理解所賜,居然認(rèn)為這是ios_in | ios_out,結(jié)果數(shù)據(jù)庫的文件是越寫越長(zhǎng),自己還一愣一愣的。
ios_binary,感覺只是一個(gè)表達(dá)指示作用,事實(shí)上,用read,write方法的話,都是進(jìn)行二進(jìn)制操作的。不過可能添加這個(gè)指示的話,會(huì)有優(yōu)化作用?沒校驗(yàn)過。
終于明白ios_binary的意義了,如果操作的真的是二進(jìn)制文件,那么就一定要指定它。我今天操作一個(gè)文件時(shí)沒有指定它,結(jié)果寫進(jìn)去的buffer是一行一行的,因?yàn)閎uffer的最后一個(gè)是換行符。后來指定為binary之后,寫入的內(nèi)容終于連續(xù)了。
posted on 2006-05-29 16:45
LOGOS 閱讀(5537)
評(píng)論(3) 編輯 收藏 引用