我尝试使用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;
}
答案 0 :(得分:2)
此:
fwrite(&buffer, size, 1, FinalPkt);
将buffer
的地址(已经是指针)传递给fwrite()
。这是错误的。
应该是:
fwrite(buffer, size, 1, FinalPkt);
另请注意,fwrite()
可能会失败,您应该检查其返回值。