30/09/2018, 18:38

Thắc mắc về các thao tác với FILE trong C

Tạo 1 FILE text,thêm số thự tự của dòng vào trước mỗi dòng trong file output.
CODE của mình

#include<stdio.h>

void linereadwrite(FILE *fin,FILE *fout) {
    int MAX_LEN=81,i=1;
    char buff[MAX_LEN];

    while(fgets(buff,MAX_LEN,fin)!=NULL) {
        fprintf(fout,"%d %s",i,buff);
        i++;
        printf("%s",buff);
    }
}

int main() {
    FILE *fptr1,*fptr2;

    fptr1=fopen("1.txt","r");
    fptr2=fopen("2.txt","w");

    linereadwrite(fptr1,fptr2);

    fclose(fptr1);
    fclose(fptr2);

    return 0;
}

Mình không biết lỗi do đâu nó ghi vào file out sai,mong được mọi người giups đỡ

Mai Anh Dũng viết 20:39 ngày 30/09/2018

Nội dung của 1.txt là gì?
Output 2.txt ra sao

Minh Hoàng viết 20:50 ngày 30/09/2018

Mình chạy bình thường bạn ơi. Mình dùng sublime. Bạn có thể đưa file out sai ra được ko?

Mai Anh Dũng viết 20:44 ngày 30/09/2018

Đúng vậy, thấy ra bình thường mà Cho thêm 1.txt2.txt mới “chuẩn bịnh” được.

Duc Ha viết 20:49 ngày 30/09/2018

Vâng,chạy thì nó vẫn chạy đươc,nhưng mở file out ra xem thì nó lại ghi không giong với những gì thấy trên terminal?

Minh Hoàng viết 20:51 ngày 30/09/2018

Cụ thể các I/O của mình.

//1.txt
Day
Nhau
Hoc
//Console
Day
Nhau
Hoc
//2.txt
1 Day
2 Nhau
3 Hoc

Bạn đối chiếu thử. Hay là “sai” ở đây là “khác”?

Mai Anh Dũng viết 20:41 ngày 30/09/2018

Tạo 1 FILE text,thêm số thự tự của dòng vào trước mỗi dòng trong file output.

Ặc ặc, chả phải đây là yêu cầu của đề bài sao?

Lệnh printf trong code đâu có thêm số thứ tự

printf("%s",buff);
Duc Ha viết 20:53 ngày 30/09/2018

hình như em bị lỗi bộ đệm,dùng cái này while(getchar()!=’\n’);
thì lại được.Mà sao lại bị lỗi nhờ ?? Cảm ơn mọi người.

Duc Ha viết 20:43 ngày 30/09/2018

mình cảm ơn

Bài liên quan
0