read()方法從緩沖區(qū)或設(shè)備讀取指定長(zhǎng)度的字節(jié)數(shù),返回對(duì)自身的引用.
而readsome()方法只能從緩沖區(qū)中讀取指定長(zhǎng)度字節(jié)數(shù),并返回實(shí)際已讀取的字節(jié)數(shù).
比如:
const int LEN = 20;


char chars[ LEN + 1 ] =
{0};
ifstream in( fileName );

in.read( chars, LEN );
cout << chars << endl;

in.readsome( chars, LEN );
cout << chars << endl;
其中
in.read( chars, LEN );
將文件從設(shè)備載入緩沖區(qū),并讀取LEN長(zhǎng)度.
接下來(lái)
in.readsome( chars, LEN );
就可以從緩沖區(qū)中讀取.
在緩沖區(qū)中沒(méi)有數(shù)據(jù)時(shí),用readsome()得不到任何數(shù)據(jù).
而有時(shí)候想要從設(shè)備讀取指定長(zhǎng)度的數(shù)據(jù),但又要知道實(shí)際讀取的長(zhǎng)度,這時(shí)候就要用另一個(gè)方法: gcount()
它返回自上次讀取以來(lái)所讀取的字節(jié)數(shù),因此可以這樣得到實(shí)際讀取的長(zhǎng)度.
int count = 0;

in.read( chars, LEN );
count = in.gcount();

cout << "Read in " << count << " chars : " << chars << endl;
實(shí)際上,readsome()也是調(diào)用read()和gcount()來(lái)實(shí)現(xiàn)的.
可冰 2005-08-15 14:29
文章來(lái)源:http://kb.cnblogs.com/archive/2005/08/15/215346.html