您的位置:首页 > 编程语言 > C语言/C++

【问题笔记】关于c++文件读写 read write gcount的尝试

2017-07-28 16:00 281 查看

发现的问题:

char szTmp[10];
fin.read(szTmp,sizeof szTmp);
fout.write(szTmp,sizeof szTmp);


问题1:如果fin指向文件缓冲区中剩余字符数小于sizeof szTmp,read的行为如何?
问题2:如何读取剩余的字符?

解决:

问题1:如果fin指向文件缓冲区中剩余字符数小于sizeof szTmp,read的行为如何?

解:fin.read(szTmp,sizeof szTmp)将剩余字符全部放入szTmp的前几位,并返回0(正常读取完指定字符数时返回1),同时设置eofbit

问题2:如何读取剩余的字符?

解:

char szTmp[10];
fin.read(szTmp,sizeof szTmp)
fout.write(szTmp,fin.gcount());
注:fin.gcount()返回上一次使用read、get、getline、ignore时读取的字符数

循环读取一整个文件的改进:

char szTmp[10];
while(fin.read(szTmp,sizeof szTmp))
fout.write(szTmp,sizeof szTmp);
fout.write(szTmp,fin.gcount());








内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c++ read write gcount