Giả sử f là con trỏ tệp nhị phân. Để đọc từ f cho biến x kiểu int, ta có thể dùng:
Trả lời:
Đáp án đúng: D
Câu hỏi này kiểm tra kiến thức về các hàm đọc dữ liệu từ tệp nhị phân trong C.
- A. fscanf(f, \"%d\", x); Hàm
fscanf
được sử dụng để đọc dữ liệu từ một tệp đã được mở ở chế độ văn bản (text mode), không phải nhị phân. Nó đọc dữ liệu theo định dạng được chỉ định (trong trường hợp này là số nguyên) và lưu vào biến được trỏ bởi con trỏx
. Tuy nhiên, vìf
là con trỏ tệp nhị phân, sử dụngfscanf
là không phù hợp. - B. fread(&x, sizeof(int), 1, f); Hàm
fread
được sử dụng để đọc dữ liệu từ tệp nhị phân. Tham số đầu tiên là địa chỉ của biến để lưu dữ liệu đọc được (&x
), tham số thứ hai là kích thước của mỗi phần tử cần đọc (sizeof(int)
), tham số thứ ba là số lượng phần tử cần đọc (1
), và tham số cuối cùng là con trỏ tệp (f
). Đoạn mã này sẽ đọc một số nguyên từ tệp nhị phânf
và lưu vào biếnx
. Đây là phương pháp chính xác để đọc dữ liệu từ tệp nhị phân. - C. getw(f); Hàm
getw
cũng được sử dụng để đọc một số nguyên từ tệp, nhưng nó là một hàm cũ và không được khuyến khích sử dụng trong các chương trình hiện đại. Nó có thể không hoạt động đúng trên tất cả các hệ thống. - D. 2 và 3 đúng. Vì
getw
không được khuyến khích và có thể không tương thích, chỉ có phương án 2 đúng.
Vậy, đáp án đúng là B.