请教一个简单的C程序问题

来源:百度知道 编辑:UC知道 时间:2024/05/11 00:51:05
我写了这段代码:
#include <stdio.h>
#include <stdlib.h>

void main()
{
char *src=(char*)malloc(100);
char *des=(char*)malloc(100);
printf("Input src string:\n");
scanf("%s",src);
printf("Input des string:\n");
scanf("%s",des);

FILE *fsrc,*fdes;
fsrc=fopen(src,"rb");
fdes=fopen(des,"wb");
char temp;

while(!feof(fsrc))
{
fread(&temp,sizeof(temp),1,fsrc);
fwrite(&temp,sizeof(temp),1,fdes);
}
fclose(fsrc);
fclose(fdes);
}
作用是把f:\1.txt 复制为f:\2.txt ,1.txt里的内容是123456,复制完后发现2.txt中的内容是1234566,请问这是怎么回事呢??
=================================
还有一个修改的,和上面的差不多:
#include <stdio.h>
#include <stdlib.h>

void main()
{
char *src=(char*)malloc(100);
char *des=(char*)malloc(100);
printf("Input src string:\n&

#include <stdio.h>
#include <stdlib.h>
void main()
{
char *src=(char*)malloc(100);
char *des=(char*)malloc(100);
printf("Input src string:\n");
scanf("%s",src);
printf("Input des string:\n");
scanf("%s",des);

FILE *fsrc,*fdes;
fsrc=fopen(src,"r");
fdes=fopen(des,"w");
int temp; //改成int型

while(!feof(fsrc))
{
temp=fgetc(fsrc);
if(temp != EOF) //有个EOF
fputc(temp,fdes);
}
fclose(fsrc);
fclose(fdes);
}