Thông tin liên hệ
- 036.686.3943
- admin@nguoicodonvn2008.info
Fgets là gì? Fgets trong C được dùng như thế nào? Hãy cùng nhau tìm hiểu cách dùng hàm fgets trong C nhé!
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.
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ụ:

Biên dịch và chạy chương trình C trên sẽ cho kết quả:
![]()
|
Tính năng |
gets() |
fgets() |
|
Kiểm soát kích thước bộ đệm |
Không kiểm soát kích thước có thể bị tràn bộ đệm |
Cho phép kiểm soát kích thước, ngăn tràn bộ đệm |
|
Xử lý dòng mới |
Bỏ ký tự xuống dòng |
Giữ nguyên ký tự xuống dòng |
|
Nguồn đầu vào |
Chỉ có thể đọc từ stdin |
Có thể đọc từ nguồn nhập bất kỳ, bao gồm stdin. |
|
Xử lý lỗi |
Không thể phát hiện lỗi hay EOF nên không có cách xử lý lỗi đọc |
Trả về NULL khi gặp lỗi hoặc EOF, vì thế, có thể xử lý hiệu quả lỗi đọc |
|
Trạng thái |
Không còn được sử dụng trong C11 trở lên |
Được đề xuất và sử dụng rộng rãi |
Nếu độ dài đầu vào vượt quá n-1 ký tự, fgets() sẽ dừng đọc ở n-1 ký tự, để lại phần đầu vào còn lại trong bộ đệm. Phần đầu vào còn lại này có thể được đọc trong các lệnh gọi tiếp theo tới fgets().
Nếu đầu vào ngắn hơn n-1 hoặc kết thúc bằng ký tự xuống dòng, chuỗi kết quả sẽ xuất hiện nhỏ hơn.
Nguồn tin: Quantrimang.com:
Ý kiến bạn đọc
Những tin mới hơn
Những tin cũ hơn
Karaoke Người Đó Tôi Đây Tình Đâu(Midi)
Chuyển tin nhắn Messenger thành bài hát trong nháy mắt
Cách xây dựng game nhiều người chơi với Claude Opus 5.5
Cách xem thời tiết trong ChatGPT với AccuWeather để lên kế hoạch
Karaoke Lạnh (Midi)
Cách kết nối ElevenLabs AI agent với Exa
Thiết lập cách ChatGPT thông báo cho bạn khi có công việc cần chú ý
TOP phần mềm OCR scan tài liệu có tích hợp AI tốt nhất
6 trang web tạo mật khẩu ngẫu nhiên an toàn đáng tin cậy
TOP nền tảng xây dựng công cụ nội bộ có tích hợp AI
TOP phần mềm AI bảo mật Internet tốt nhất hiện nay
Biến các ý tưởng thành giải thích trực quan, tương tác trong ChatGPT
TOP tiện ích mở rộng AI cho VS Code tốt nhất
Cách tạo website Portfolio miễn phí bằng ChatGPT
6 lựa chọn thay thế Visual Studio Code tốt nhất có tích hợp AI
Tạo form hỏi đáp tương tác trong vài phút và prompt chỉnh sửa
Hướng dẫn sử dụng Google Slides trong Claude
Hướng dẫn sử dụng Wolfram trong ChatGPT giải toán nâng cao
15 prompt AI thú vị cho ngày lễ Halloween
Hoàn thiện một thiết kế thực tế với ChatGPT + Canva
Hướng dẫn cài đặt và sử dụng n8n trên Windows 11
Cách lập trình chuyên nghiệp hơn, dễ dàng hơn với tính năng Tệp trên Grok
Công thức tính diện tích hình Elip
Hướng dẫn ngắt kết nối ứng dụng trên ChatGPT
Hướng dẫn tạo đoạn hội thoại cho topic trên Twee
Bức tranh tổng quan về hỗ trợ khách hàng tích hợp AI
Cách sửa lỗi There Are Currently No Power Options Available Windows
Claude Code thực sự có giá bao nhiêu?
5 tài liệu hay nhất giúp bạn làm chủ Small Language Model (SLM) năm 2026
Hướng dẫn 8 cách mở bàn phím ảo trên Windows 10