void receivef(char *fname) {FILE *fp; char ch; int count,temp,sum=0; remove(fname); if((fp=fopen(fname,"w"))==NULL) {printf("不能打开文件\n"); exit(1); } printf("接收文件名:%s\n",fname); while(rport()!='?'); sport('$'); ch='.'; sport(ch); temp=report(); count=temp; rep: for(;count;count--) {ch=rport(); putc(ch,fp); sum=sum+ch; if(ferror(fp)) {printf("写文件有误\n"); exit(1); } } if(rport()!=sum) {ch='F'; sport(ch); count=temp; sum=0; fseek(fp,-count,1); goto rep; } else {ch='0'; sport(ch); fclose(fp); printf("接收文件结束\n"); } }