一个关于写入文件的问题
程序代码:#include <stdio.h>
#include <string.h>
#define MAX_LEN 800
int main()
{
char* ch[MAX_LEN];
memset(ch,0,MAX_LEN);
FILE* pfile=fopen("FILE.c","r");//打开源文件
if(NULL==pfile)
printf("Open file failed\n");
else
printf("Open file success\n");
FILE* cfile=fopen("test.txt","w+");//打开目标文件
fseek(pfile,0,SEEK_END);
long flen=ftell(pfile);
rewind(pfile);
printf("This file %d bytes\n",flen);
long read=fread(ch,1,flen,pfile);//读入内存
printf("Have been read %d bytes\n",read);
size_t write=fwrite(ch,1,flen,cfile);
// printf("Have been writen %s bytes\n",write);
fclose(pfile);
fclose(cfile);
return 0;
}两个问题:1、如果加入红色代码,程序会停止
2、去掉红色代码,程序运行正常。但是显示读入的字节数(462 bytes)少于源文件(FILE.c)的字节数(495 bytes).
但是查看test.txt发现实际上写入了527 bytes,并且后面一对空白字符。








