回 帖 发 新 帖 刷新版面

主题:求助!关于读入二进制文件的问题

#include<fstream.h>
void main()
{
    ifstream infile;
    ofstream outfile;
    char data;
    int npels=0;

    infile.open("LENA256.img",ios::binary);
    outfile.open("t.txt");

    while (!infile.eof())
    {
        infile>>data;
        outfile<<(int)((unsigned char)data)<<" ";
        npels++;
        if (npels%256==0) outfile<<"\n";
    }
    infile.close();
    outfile.close();
}

运行之后发现读入的数据少了很多个,在输出文件outfile中发现开始读入正常,但后来就开始读漏一些数了。究竟是为什么啊,求助!

回复列表 (共3个回复)

沙发

这种方式读写没试过,一般都用SDK或者C runtime 库的文件操作函数。。。不过漏掉的数可能是控制字符\r\n(Windows下)或者\n(Linux下)。。。一个个字符读取文件好像不太好,最好定义一个缓冲区。。。

板凳

二进制读入,文本方式写回去
内容为0的数据会丢失

3 楼

其实我想读入一个二进制位流文件,源文件没有\r\n,事先不知道文件的大小,用什么方法比较好啊

我来回复

您尚未登录,请登录后再回复。点此登录或注册