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:
Đá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` thường được sử dụng để đọc dữ liệu từ tệp văn bản (text file), không phải tệp nhị phân (binary file). `fscanf` sẽ cố gắng định dạng dữ liệu đọc được theo chuỗi định dạng (trong trường hợp này là "%d" cho số nguyên), và điều này không phù hợp khi làm việc với dữ liệu nhị phân thô.
B. fread(&x, sizeof(int), 1, f);
- Hàm `fread` là hàm chuẩn để đọc dữ liệu từ tệp nhị phân.
- `&x`: Địa chỉ của biến `x`, nơi dữ liệu sẽ được lưu trữ.
- `sizeof(int)`: Kích thước của mỗi phần tử cần đọc (trong trường hợp này, kích thước của một số nguyên).
- `1`: Số lượng phần tử cần đọc (trong trường hợp này, đọc một số nguyên).
- `f`: Con trỏ tệp.
- Hàm này sẽ đọc `sizeof(int)` byte từ tệp `f` và lưu vào biến `x`.
C. getw(f);
- Hàm `getw` được dùng để đọc một số nguyên từ một luồng (stream). Tuy nhiên, hàm này ít được sử dụng hơn `fread` và có thể không tương thích trên mọi hệ thống.
D. B và C đúng
- Vì cả B và C đều có thể được sử dụng để đọc một số nguyên từ một tệp (nhị phân), phương án này là đúng nhất.