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

来源:互联网 发布:ping无法连接到端口 编辑:程序博客网 时间:2024/06/08 17:02

发现的问题:

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());




阅读全文
0 0
原创粉丝点击