实现dos下的copy功能,为什么每一次都多了一个字节(FILE),请高手回答
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc , char *argv[])
{
int i,j;
FILE *fpsource,*fpdest;
char *source,*dest;
for (i=1;i<argc;i+=2)
{
if (strcmp(argv[i],"-?")==0||strcmp(argv[i],"/?")==0)
printf("%s\n","usage: -s source file -d dest file");
if (strcmp(argv[i],"-s")==0)
{
j=i+1;
source=malloc(sizeof(argv[j]));
strcpy(source,argv[j]);
}
if (strcmp(argv[i],"-d")==0)
{
j=i+1;
dest=malloc(sizeof(argv[j]));
strcpy(dest,argv[j]);
}
}
if((fpsource=fopen(source,"r"))==NULL)
{
printf("can not open source file\n");
free(source);
free(dest);
exit(0);
}
if((fpdest=fopen(dest,"w"))==NULL)
{
printf("can not open dest file\n");
free(source);
free(dest);
exit(0);
}
while(!feof(fpsource))
{
fputc(fgetc(fpsource),fpdest);
}
fclose(fpsource);
fclose(fpdest);
free(source);
free(dest);
return 1;
}
应当是在while的问题吧,是用gcc version 3.2 (mingw special 20020817-1)