Phát biểu nào sau là đúng khi nói về hàm fgets():
A.
Hàm đọc 1 kí tự từ tệp, nếu thành công hàm cho mã đọc được. Nếu gặp cuối tệp hoặc có lỗi, hàm cho kí tự EOF.
B.
Hàm đọc 1 dãy kí tự từ tệp để lưu vào vùng nhớ mới.
C.
Khi dùng hàm nếu gặp kí tự xuống dòng thì kí tự mã số 10 sẽ được thêm vào cuối xâu được đọc.
D.
Khi dùng hàm, nếu gặp kí tự xuống dòng, thì kí tự mã số 10 và 13 sẽ được thêm vào cuối xâu được đọc.
Trả lời:
Đáp án đúng: D
Hàm `fgets()` được sử dụng để đọc một dòng từ một tệp tin. Dưới đây là phân tích chi tiết các phương án:
* **Phương án A:** Sai. Hàm `fgetc()` mới đọc từng kí tự từ tệp.
* **Phương án B:** Sai. Hàm `fgets()` đọc một dãy kí tự từ tệp và lưu vào vùng nhớ *đã cho*, chứ không phải vùng nhớ mới.
* **Phương án C:** Đúng. Hàm `fgets()` đọc các ký tự từ tệp cho đến khi gặp ký tự xuống dòng (`\n`), đạt đến độ dài tối đa đã chỉ định, hoặc gặp EOF. Nếu gặp ký tự xuống dòng, hàm sẽ bao gồm ký tự này trong chuỗi và thêm một ký tự null (`\0`) vào cuối chuỗi.
* **Phương án D:** Sai. Hàm `fgets()` chỉ thêm kí tự xuống dòng (mã số 10) và kí tự null (\0) chứ không thêm kí tự mã số 13.
Vậy, phương án C là đúng nhất.