Cách dùng eof trong C?

Em có 1 hàm đọc file txt cho tới khi nào đến cuối file nên em thường dùng thế này:

FILE *fp = fopen(...);
while( ! feof(fp) )
{
fgets(...);
}

Cơ mà nãy em vô tình xem được 1 post bên stackoverflow thì nó bảo cách dùng eof này sai rồi @@ ai có thể chỉ cho em cách dùng đúng được ko ạ

1 Like


trong cái link này dưới phần answer thứ 2 nó bảo là cách dùng này sai, vô tình đọc được trong lúc tìm cách skip vài dòng trong khi đọc file text :smiley:

Theo mình thì không cần thiết phải dùng bởi các hàm đọc file đều có thể xác định kết thúc file chình xác: getchar, fgets,fgetc,getline,fread, fscanf,read…

1 Like

ý em muốn là đọc từng dòng và lặp lại cái công việc đó tới cuối file á anh

Thế thì bạn có thể dùng getline

size_t size;
char * buf=NULL;
while(getline(&buf,&size,file)!=EOF){
        puts(buf); 
}
1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?