首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

二进制遍历读取文件如何操作好

2012-06-12 
二进制遍历读取文件怎么操作好?fgetc(inFile)这样可以么?怎么判断操作到文件尾了呢?我想要一个字节一个字

二进制遍历读取文件怎么操作好?
fgetc(inFile);

这样可以么?怎么判断操作到文件尾了呢?

我想要一个字节一个字节的遍历读取二进制文件内容,该怎么操作?

[解决办法]

探讨

fopen_s(&inFile, fileName, "r");

while (!feof(inFile))
{
val = fgetc(inFile);
++uCurrentPos;
}

代码是这样的,请问是什么原因?并且有时还会出错

[解决办法]
不要把
fopen("...","...");fscanf,fprintf,fclose //读时把\r\n替换成\n,写时把\n替换成\r\n;读到\x1a就设置EOF;读写的内容当字符看待

fopen("...","...b");fread,fwrite,fclose //不作以上替换,遇到\x1a仍继续读;读写的内容当字节看待
弄混了

仅供参考
C/C++ code
#include <stdio.h>FILE *fi,*fo;void main() {    fo=fopen("500M.out","wb");    fi=fopen("500M.in","rb");    fseek(fi,-1L,SEEK_END);    while (1) {        fputc(fgetc(fi),fo);        if (fseek(fi,-2,SEEK_CUR)) break;    }    fclose(fi);    fclose(fo);} 

热点排行