28/08/2018, 16:52

Hàm fgetpos() trong C

Hàm int fgetpos(FILE *stream, fpos_t *pos) trong Thư viện C chuẩn lấy vị trí file hiện tại của Stream và ghi nó tới pos. Khai báo hàm fgetpos() trong C Dưới đây là phần khai báo cho hàm fgetpos() trong C: int fgetpos ( FILE * stream , fpos_t ...

Hàm int fgetpos(FILE *stream, fpos_t *pos) trong Thư viện C chuẩn lấy vị trí file hiện tại của Stream và ghi nó tới pos.

Khai báo hàm fgetpos() trong C

Dưới đây là phần khai báo cho hàm fgetpos() trong C:

int fgetpos(FILE *stream, fpos_t *pos)

Tham số

stream − Đây là con trỏ tới một đối tượng FILE mà nhận diện Stream.

pos − Đây là con trỏ tới một đối tượng fpos_t.

Trả về giá trị

Hàm này trả về 0 nếu thành công, và trả về giá trị khác 0 nếu có một lỗi.

Ví dụ

Chương trình C sau minh họa cách sử dụng của hàm fgetpos() trong C:

#include <stdio.h>

int main ()
{
   FILE *fp;
   fpos_t position;

   fp = fopen("baitapc.txt","w+");
   fgetpos(fp, &position);
   fputs("Hello, World!", fp);
  
   fsetpos(fp, &position);
   fputs("Noi dung nay se ghi de phan noi dung da co truoc trong file", fp);
   fclose(fp);
   
   return(0);
}

Biên dịch và chạy chương trình trên để tạo một baitapc.txt có nội dung sau. Đầu tiên chúng ta lấy vị trí ban đầu của file bởi sử dụng hàm fgetpost() và sau đó chúng ta ghi Hello, World! trong file này, sau đó chúng ta sử dụng hàm fsetpos() để phục hồi con trỏ ghi về vị trí đầu của file và sau đó ghi đè file với nội dung sau:

Chạy chương trình

Bây giờ bạn theo dõi nội dung của file trên bởi sử dụng chương trình C sau:

#include <stdio.h>

int main ()
{
   FILE *fp;
   int c;
   int n = 0;

   fp = fopen("baitapc.txt","r");
   
   while(1)
   {
      c = fgetc(fp);
      if( feof(fp) )
      {
         break ;
      }
      printf("%c", c);
   }

   fclose(fp);

   return(0);
}

Biên dịch và chạy chương trình C trên sẽ cho kết quả:

Kết quả sau khi cạy chương trình

Theo Tutorialspoint

Bài trước: Hàm fflush() trong C

Bài tiếp: Hàm fopen() trong C

0