C++中,ifstream和ofstream定義文件流的區(qū)別
區(qū)別一:本質(zhì)不一樣
1、ofstream是從內(nèi)存到硬盤;
2、ifstream是從硬盤到內(nèi)存
區(qū)別二:實際應(yīng)用不同
1、ifstream默認以輸入方式打開文件
2、ofstream默認以輸出方式打開文件
擴展資料1、C++對文件的輸入輸出操作需要用ifstream、ofstream和fstream類。
2、ifstream類支持文件的輸入,ofstream類支持文件的輸出操作,fstream類支持文件的輸入輸出操作,它們的定義在頭文件<fstream>中。
3、C++將字符串也理解為一種輸入輸出設(shè)備,因此,也可以向終端設(shè)備和文件那樣將數(shù)據(jù)輸入輸出到字符串中。
c++中輸出和輸入導(dǎo)屏幕和鍵盤的類別聲明包含再標題文件<iostrream.h>中,而磁盤類文件的 I/O則聲明再包含標題文件<fstream.h>內(nèi)。
輸入和輸出格式:
輸出到磁盤 ofsteam 識別字(“文件名”)
從磁盤讀文件 ifsteam 識別字("文件名“)
例如:
ofstream outfile("data.txt"); //寫入到磁盤的data.txt中
在頭文件中使用ifstream時提示未聲明的標識符,已包含相應(yīng)文件
ifstream 是在 fstream 頭文件中,所以要包含 fstream 頭文件,并且 引用 std 命令空間。
在文件頭部添加下面兩句:
#include<fstream>
usingnamespacestd;
c++中,ifstream怎么實現(xiàn)拷貝復(fù)制?
使用C++標準程序庫的輸入輸出流(I/OStream)復(fù)制文件,存在許多的方法,
方法一:逐個字符復(fù)制
#include<fstream>
std::ifstreaminput("in",ios::binary);
std::ofstreamoutput("out",ios::binary);
charch;
while(input.get(ch))output<<ch;
注意:如果使用input>>ch讀取字符,則必須先調(diào)用input.untf(ios::skipws)取消輸入流默認的跳過空白符的輸入格式,因為換行符是空白符的一種。
方法二:逐行復(fù)制
#include<fstream>
#include<string>
std::ifstreaminput("in",ios::binary);
std::ofstreamoutput("out",ios::binary);
std::stringline;
while(getline(input,line))output<<line<<" ";
注意:這里的代碼有一個小小的缺陷,如果文件不是純文本格式的文件,或者文本文件的最后沒有換行符,那么會導(dǎo)致復(fù)制后的文件末尾添加了一個多余的換行符。
方法三:迭代器復(fù)制
#include<fstream>
#include<iterator>
#include<algorithm>
std::ifstreaminput("in",ios::binary);
std::ofstreamoutput("out",ios::binary);
input.untf(ios::skipws);
copy(istream_iterator(input),istream_iterator(),ostream_iterator(output,""));
同樣這里也有一個小技巧,輸入流的格式默認為跳過空白字符,因此調(diào)用untf取消這個格式,才可保證正確的復(fù)制。
方法四:緩沖區(qū)復(fù)制
#include<fstream>
std::ifstreaminput("in",ios::binary);
std::ofstreamoutput("out",ios::binary);
output<<input.rdbuf();
這里直接使用了輸入流的緩沖區(qū),因此沒有引入額外的臨時對象。
很顯然,上述四種方法中,最后一種方法最簡潔,由于直接操作輸入流的緩沖區(qū),從運行效率上來說,也比其他方法有著略微的優(yōu)勢(當(dāng)然,由于操作系統(tǒng)可能提供了額外的基于設(shè)備的文件緩沖機制,也許你無法證實這一點)。因此,除非要對輸入內(nèi)容進行處理,直接復(fù)制文件推薦最后一種方法,既不容易出錯,又能獲得良好的性能。
以上是搜索的資料,希望對你有幫助
c++ ifstream函數(shù)的使用
怎么使用ifstream讀取文件
本文發(fā)布于:2023-02-28 19:33:00,感謝您對本站的認可!
本文鏈接:http://www.newhan.cn/zhishi/a/167762063264698.html
版權(quán)聲明:本站內(nèi)容均來自互聯(lián)網(wǎng),僅供演示用,請勿用于商業(yè)和其他非法用途。如果侵犯了您的權(quán)益請與我們聯(lián)系,我們將在24小時內(nèi)刪除。
本文word下載地址:ifstream(ifstream讀取文件).doc
本文 PDF 下載地址:ifstream(ifstream讀取文件).pdf
| 留言與評論(共有 0 條評論) |