Computer >> Máy Tính >  >> Lập trình >> lập trình C

fseek () so với rewind () trong C

fseek ()

fseek () trong ngôn ngữ C được sử dụng để di chuyển con trỏ tệp đến một vị trí cụ thể. Offset và stream là đích của con trỏ, được đưa ra trong các tham số hàm. Nếu thành công, nó trả về giá trị 0, những giá trị khác khác không được trả về.

Đây là cú pháp của fseek () trong ngôn ngữ C,

int fseek(FILE *stream, long int offset, int whence)

Đây là các tham số được sử dụng trong fseek (),

  • luồng - Đây là con trỏ để xác định luồng.

  • bù đắp - Đây là số byte từ vị trí.

  • thời gian - Đây là vị trí mà từ đó bù đắp được thêm vào.

khice được chỉ định bởi một trong các hằng số sau.

  • XEMK_END - Cuối tệp.

  • SEEK_SET - Khởi động tệp.

  • SEEK_CUR - Vị trí hiện tại của con trỏ tệp.

Đây là một ví dụ về fseek () trong ngôn ngữ C -

Giả sử chúng tôi có tệp “demo.txt” với nội dung sau -

This is demo text!
This is demo text!
This is demo text!
This is demo text!

Bây giờ hãy để chúng tôi xem mã.

Ví dụ

#include<stdio.h>
void main() {
   FILE *f;
   f = fopen("demo.txt", "r");
   if(f == NULL) {
      printf("\n Can't open file or file doesn't exist.");
      exit(0);
   }
   fseek(f, 0, SEEK_END);
   printf("The size of file : %ld bytes", ftell(f));
   getch();
}

Đầu ra

The size of file : 78 bytes

Trong chương trình trên, tệp “demo.txt” được mở bằng fopen () và hàm fseek () được sử dụng để di chuyển con trỏ đến cuối tệp.

f = fopen("demo.txt", "r");
if(f == NULL) {
   printf("\n Can't open file or file doesn't exist.");
   exit(0);
}
fseek(f, 0, SEEK_END);

tua lại ()

Hàm rewind () được sử dụng để đặt vị trí của tệp ở đầu luồng nhất định. Nó không trả về bất kỳ giá trị nào.

Đây là cú pháp của rewind () trong ngôn ngữ C,

void rewind(FILE *stream);

Đây là một ví dụ về rewind () trong ngôn ngữ C,

Giả sử chúng tôi có tệp “new.txt” với nội dung sau -

This is demo!
This is demo!

Bây giờ, chúng ta hãy xem ví dụ.

Ví dụ

#include<stdio.h>
void main() {
   FILE *f;
   f = fopen("new.txt", "r");
   if(f == NULL) {
      printf("\n Can't open file or file doesn't exist.");
      exit(0);
   }
   rewind(f);
   fseek(f, 0, SEEK_END);
   printf("The size of file : %ld bytes", ftell(f));
   getch();
}

Đầu ra

The size of file : 28 bytes

Trong chương trình trên, tệp được mở bằng cách sử dụng fopen () và nếu biến con trỏ là null, nó sẽ hiển thị không thể mở tệp hoặc tệp không tồn tại. Hàm rewind () đang di chuyển con trỏ đến đầu tệp.

f = fopen("new.txt", "r");
if(f == NULL) {
   printf("\n Can't open file or file doesn't exist.");
   exit(0);
}
rewind(f);