返回首页

下午好,

我建立一个电子邮件的发射器,使用Visual C形式。
现在我不知道很多的C,所以这就是为什么我使用C标准库。

我有一个HTML编码的电子邮件内的一个文本文件。

如果我创建一个字符串,predefinied大小说
字符的邮件[150000]

FREAD工程罚款

但是,如果我分配内存FREAD只读取几个字符(约265)

char *mail;

mail=(char*)malloc(sizeof(char)*150000);

fread(mail,1,150000,f);

我trye​​d正常打开文件或二进制

需要帮助,
该文件的内容
addional详情。
FREAD返回值匹配的文件的字符。

回答

评论会员:理查德MacCutchan 时间:2012/02/07
有没有理由,为什么这应该是从你所显示的代码,但不知道该文件的内容,它很难猜测可能会发生。你应该仔细检查输入文件的大小和内容。我也建议捕获返回值从FREAD()调用返回多少个字符
评论会员:。strogg 时间:2012/02/07
。再次尝试获得文件的大小,将它传递到FREAD


long fSize;

// after opening the file

fseek (f , 0 , SEEK_END);

fSize = ftell (f);

rewind (f);

// now pass the size to fread

// (also a good idea to allocate

//  just that much of memory)

fread(mail,1,fSize,f);


有趣的问题。让我知道,如果它解决:Cr4zYPT
评论会员:游客 时间:2012/02/07
|。strogg我已经实现了你的代码,并添加了几个矿,这是结果ftell返回51171的FREADretuns51171但在串,我只有这片文件{体C3}