救命!怎样用C实现对一dat文件的连续读取?????

myblue100 2003-07-23 04:59:46
比如
dat文件内容
123456789012。。。。。。。
我想做的是每次读5个字符,对其操作后,再读5个,在操作,,,,
FILE *filein;
char Arr[6];
filein=fopen("H1.dat","r");
while (!feof(filein))
{
if (fread(Arr, sizeof(char), 5, filein) != NULL)
{
......................
}
filein++;
}
我做的是错的,帮帮忙。谢谢。
...全文
36 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
六月初六 2003-07-24
  • 打赏
  • 举报
回复
如nkscorpion(蝎子)所说
加上那句 不然的话 会多输出一次末尾数据
蝎子i软件 2003-07-24
  • 打赏
  • 举报
回复
if (fread(Arr, sizeof(char), 5, filein) != NULL)
改成fread(Arr, sizeof(char), 5, filein)应该就可以了,
还有,
在这句后面加一条:
if( feof(filein) )
break;
不然的话,最后一次读的数据可能会有重复输出。
x_Jet 2003-07-24
  • 打赏
  • 举报
回复
bytes = fread(Arr, sizeof(char), 5, filein)

bytes 用来判定此次读取了多少个字节,最后一次可能小于5
myblue100 2003-07-24
  • 打赏
  • 举报
回复
但是还是不对,我总是读他的前5位,而不再接着读,我不明白为什么????第二次也是读前5位。
myblue100 2003-07-24
  • 打赏
  • 举报
回复
明白了。。谢谢大家。
personnel 2003-07-24
  • 打赏
  • 举报
回复
while (!feof(fp))
{
memset(Arr, 0, 6);
if( fread(Arr, sizeof(char), 5, fp) != NULL)
{
...............
}
}
fclose(fp);
六月初六 2003-07-23
  • 打赏
  • 举报
回复
filein++;//把这条去掉
你做读操作的时候就移动了文件指针
myblue100 2003-07-23
  • 打赏
  • 举报
回复
不会吧。。帮帮忙吗

24,854

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧