30/09/2018, 16:12
Ghép nội dung của 2 files sinh ra ký tự lạ ở file thứ 2
Đề là:
Viết chương trình ghép nối nội dung của 2 tệp:
- Nhập từ bàn phím tên của tệp nguồn và tệp đích
- Nối ghép nội dung của tệp nguồn vào cuối tệp đích.
Code e viết như sau:
#include <stdio.h>
int main(){
char tepNguon[14]="";
char tepDich[14]="";
fflush(stdin);
printf("Nhap ten tep nguon: ");
gets(tepNguon);
FILE *fn=fopen(tepNguon,"r");
if(fn==NULL){
perror("Loi mo tep nguon");
return 1;
}
printf("Nhap ten tep dich: ");
gets(tepDich);
FILE *fd=fopen(tepDich,"a");
if(fd==NULL){
perror("Loi mo tep dich");
return 1;
}
rewind(fn);
while(!feof(fn)){
int c=fgetc(fn);
fputc(c,fd);
}
fclose(fd);
fclose(fn);
return 0;
}
Nó chạy toàn bị có kí tự thừa ở cuối file đích mà e ko biết sửa làm sao ạ.
mong anh/chị giúp e với ạ.
Bài liên quan
Em viết như thế này sẽ dẫn đến việc ghi thêm một character vào file đích khi
feof(fn)
Câu lệnh này sẽ kiểm tra nếu chưa gặp EOF thì lấy thêm một char nữa và ghi xuống file. Khi tới char cuối cùng trước EOF, em sẽ copy EOF vào file đích. Ký tự lạ đó là ký tự EOF. Thế nên em phải kiểm tra ký tự vừa đọc được có phải là EOF hay không.