Hàm fgets() trong C | Thư viện C chuẩn




Hàm fgets() trong C

Hàm char *fgets(char *str, int n, FILE *stream) trong Thư viện C chuẩn đọc một dòng từ Stream đã cho và lưu trữ nó vào trong chuỗi được trỏ bởi str. Nó dừng khi gặp bất cứ điều kiện nào sau: (n-1) ký tự đã được đọc, ký tự newline (dòng mới) được đọc hoặc bắt gặp end-of-file.

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

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

char *fgets(char *str, int n, FILE *stream)

Tham số

  • str -- Đây là con trỏ tới một mảng các char nơi chuỗi được đọc được lưu trữ.

  • n -- Đây là số ký tự tối đa được đọc (bao gồm ký tự null cuối cùng). Thường thì độ dài của mảng đã truyền là str được sử dụng.

  • stream -- Đây là con trỏ tới một đối tượng FILE mà nhận diện Stream, nơi mà các ký tự được đọc từ đó.

Trả về giá trị

Nếu thành công, hàm trả về cùng tham số str. Nếu bắt gặp EOF và không có ký tự nào đã được đọc, nội dung của str vẫn không thay đổi và một con trỏ null được trả về.

Nếu một lỗi xuất hiện, một con trỏ null được trả về.

Ví dụ

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

#include <stdio.h>

int main()
{
   FILE *fp;
   char str[60];

   /* mo file de doc */
   fp = fopen("baitapc.txt" , "r");
   if(fp == NULL) 
   {
      perror("Xay ra loi trong khi doc file");
      return(-1);
   }
   if( fgets (str, 60, fp)!=NULL ) 
   {
      /* Ghi noi dung len stdout */
      puts(str);
   }
   fclose(fp);
   
   return(0);
}

Giả sử chúng ta có baitapc.txt với nội dung sau. File này sẽ được sử dụng như là input cho chương trình C ví dụ:

Hàm fgetc trong C

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

Hàm fgets trong C

Đã có app VietJack trên điện thoại, giải bài tập SGK, SBT Soạn văn, Văn mẫu, Thi online, Bài giảng....miễn phí. Tải ngay ứng dụng trên Android và iOS.

Theo dõi chúng tôi miễn phí trên mạng xã hội facebook và youtube:

Các bạn có thể mua thêm khóa học JAVA CORE ONLINE VÀ ỨNG DỤNG cực hay, giúp các bạn vượt qua các dự án trên trường và đi thực tập Java. Khóa học có giá chỉ 300K, nhằm ưu đãi, tạo điều kiện cho sinh viên cho thể mua khóa học.

Nội dung khóa học gồm 16 chuơng và 100 video cực hay, học trực tiếp tại https://www.udemy.com/tu-tin-di-lam-voi-kien-thuc-ve-java-core-toan-tap/ Bạn nào có nhu cầu mua, inbox trực tiếp a Tuyền, cựu sinh viên Bách Khoa K53, fb: https://www.facebook.com/tuyen.vietjack

Follow facebook cá nhân Nguyễn Thanh Tuyền https://www.facebook.com/tuyen.vietjack để tiếp tục theo dõi các loạt bài mới nhất về Java,C,C++,Javascript,HTML,Python,Database,Mobile.... mới nhất của chúng tôi.

Các bài Thư viện C phổ biến khác tại VietJack:


stdio-h-trong-c.jsp