Fwrite输出文件0kb

时间:2014-04-07 09:07:54

标签: c file io

我尝试使用fwrite写入文件,如下所示,但我的输出文件始终为0Kb。 它适用于txt文件。 请告诉我应该怎么做。 我仍然是新手。

谢谢。

#include "stdafx.h"
#include <string>
#include <fstream>
#include <Windows.h>
using namespace std;
unsigned char* buffer;
int ch,size;
int count =0;


FILE *FinalPkt;
FILE *PdfInput;

int _tmain(int argc, _TCHAR* argv[])
{
    PdfInput=fopen("C:\\test.pptx","rb");
    fseek(PdfInput,0,SEEK_END);
    size=ftell(PdfInput);
    fseek(PdfInput,0,SEEK_SET);
    buffer=(unsigned char *)malloc((unsigned int)_MAX_PATH);
    fread(&buffer,sizeof(unsigned int),size,PdfInput);

    if (PdfInput==NULL)
    {
        int i =1;
    }
    FinalPkt = fopen("C:\\test1.pptx","wb");
    fwrite(&buffer,size,1,FinalPkt);
    fclose(FinalPkt);
    if (FinalPkt==NULL)
    {

    }
    return 0;
}  

1 个答案:

答案 0 :(得分:2)

此:

fwrite(&buffer, size, 1, FinalPkt);

buffer的地址(已经是指针)传递给fwrite()。这是错误的。

应该是:

fwrite(buffer, size, 1, FinalPkt);

另请注意,fwrite()可能会失败,您应该检查其返回值。