您的位置:程序门 -> c/c++ -> c++ 语言



二进制文件读写


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


二进制文件读写[已结贴,结贴人:lpman2005]
发表于:2007-07-05 21:03:28 楼主
#include   <iostream>
#include   <fstream>
#include   <string>
using   namespace   std;

int   main()
{
struct   buffer
{
char   time[10];
char   name[10];
};


buffer   buffer[3];
memset(   buffer,   0,   sizeof(buffer)   );
strcpy(   buffer[0].time,   "20070628 "   );
strcpy(   buffer[0].name,   "flow1 "   );
strcpy(   buffer[1].time,   "20070629 "   );
strcpy(   buffer[1].name,   "flow2 "   );
strcpy(   buffer[2].time,   "20070629 "   );
strcpy(   buffer[2].name,   "flow3 "   );
ofstream   out;
out.open(   "data ",   ios::binary   );
if   (   !out   )  
{
cout   < <   "failed   to   open   file "   < <   endl;
return   -1;
}

out.write(   (   char   *   )buffer,   sizeof(buffer)   );


out.close();

return   0;
}

使用下列语句读数据时最后会读到一个空记录,不知道为什么,请高手指教
while   (   !   in.eof()   )
{
memset(   &buffer,   0,   sizeof(buffer)   );
in.read   (   (char   *)&buffer,   sizeof(   buffer   )   );
                                      .....
                  }
发表于:2007-07-05 21:22:221楼 得分:15
do   while   !eof()……enddo,表示当数据指针未指到最后一条记录后时,进入循环,而到最后一条记录后时,就退出循环,执行enddo后面的语句。
发表于:2007-07-05 22:14:122楼 得分:15
先读一次,再判断是否是文件尾,若是文件尾,先读的那次失败,否则继续读,继续判断


快速检索

最新资讯
热门点击