If the file "data.txt" contains: Hello World 42 Consider the following complete C program that reads data from a file:
4 phương ánCó giải thích
#include <stdio.h>
#include <stdlib.h>
int main() {
FILE *fp = fopen("data.txt", "r");
char buffer[100];
int number;
if (fp != NULL) {
fgets(buffer, sizeof(buffer), fp);
fscanf(fp, "%d", &number);
fclose(fp);
}
return 0;
}What will be stored in the variables after execution?
Các phương án trả lời
Chọn một phương ánLời giảiChọn phương án để mở
Đáp án đúng: "buffer = "Hello World\n", number = 42". Hàm fgets đọc tới hết dòng hoặc tới khi gần đầy vùng đệm, nó giữ lại ký tự xuống dòng rồi mới thêm ký tự kết thúc chuỗi; vùng đệm 100 byte đủ chứa dòng đầu nên buffer nhận trọn Hello World kèm ký tự xuống dòng. Chỉ báo vị trí tệp lúc này nằm ở đầu dòng thứ hai, nên fscanf với đặc tả %d bỏ qua khoảng trắng dẫn đầu, đọc hai chữ số và ghi 42 vào number. Mô tả "buffer = "Hello World", number = 42" bỏ mất ký tự xuống dòng, mà đó đúng là chỗ khác nhau giữa fgets và các hàm đọc dòng kiểu cũ. Mô tả "buffer = "Hello", number = 0" ứng với cách đọc theo từ của scanf với đặc tả chuỗi, còn fgets không dừng ở khoảng trắng. Mô tả "buffer = "Hello World\n", number = undefined" sai ở phần số: dòng thứ hai có số nguyên hợp lệ nên fscanf đọc được và báo đã gán một giá trị.
Cùng phần 9
What is the purpose of "rb" in fopen() function used below in the code?
FILE *fp;
fp = fopen("demo.txt", "rb");Có lời giảiCâu hỏiWhat is the main difference between opening a file with mode "a+" and mode "w+" in C?Có lời giảiCâu hỏiWhat function is used to send formatted output to a file?Có lời giảiCâu hỏiCả 20 câu của chủ đề20 câu
Xuất hiện trong 2 bộ đề
Đi tiếp từ đây