Chương trình yêu cầu người dùng nhập tên, ID, v.v. của 2 sinh viên, ghi dữ liệu vào một tệp và đọc dữ liệu từ tệp.
#include
#include
#include
#include
#include
int chính(){
int fd, i = 0;
tên char[20], id[10], dob[10], giới tính[7], trạng thái[10];
fd = open("file.dat", O_WRONLY|O_CREAT, S_IRWXU); //mở file.dat để ghi; nếu nó không tồn tại, hãy tạo nó;
vì (i = 0; i < 2; i++){
// lấy đầu vào từ người dùng
printf("\nDành cho sinh viên %d\n", (i + 1));
printf("Nhập tên: ");
scanf("%[^\n]%*c", name); //%[^\n]%*c - đọc mọi thứ lên đến (không bao gồm) ký tự dòng mới
printf("Nhập ID: ");
scanf("%[^\n]%*c", id);
printf("Nhập ngày sinh: ");
scanf("%[^\n]%*c", dob);
printf("Nhập giới tính: ");
scanf("%[^\n]%*c", giới tính);
printf("Nhập tình trạng hôn nhân: ");
scanf("%[^\n]%*c", trạng thái);
// ghi sinh viên hiện tại vào file
write(fd, name, 20);
viết(fd, id, 10);
viết(fd, dob, 10);
write(fd, giới tính, 7);
write(fd, trạng thái, 10);
}
đóng(fd);
//hiển thị dữ liệu từ file
char buf[20];
fd = open("file.dat", O_RDONLY); //mở file để đọc
vì (i = 0; i < 2; i++){
printf("\nDành cho sinh viên %d\n", (i + 1));
read(fd, buf, 20);
printf("Tên: %s\n", buf);
đọc(fd, buf, 10);
printf("ID: %s\n", buf);
read(fd, buf, 10); //đọc ngày sinh
printf("Ngày sinh: %s\n", buf);
read(fd, buf, 7);
printf("Giới tính: %s\n", buf);
read(fd, buf, 10);
printf("Tình trạng hôn nhân: %s\n", buf);
}
}
Phần đầu vào:
tới học sinh 1
Nhập tên: Mary Jane Smith
Số đầu vào: 1
Nhập ngày sinh: 09/09/1990
Nhập giới tính:Nữ
Nhập tình trạng hôn nhân: độc thân
dành cho học sinh 2
Nhập tên: John Doe Paul
Số đầu vào: 2
Nhập ngày sinh: 8/8/1993
Nhập giới tính: nam
Nhập tình trạng hôn nhân: đã kết hôn
Phần hiển thị:
tới học sinh 1
Tên: Mary Jane Smith
Số: 1
Ngày sinh: 9/9/1990 Smith
Giới tính:Nữ
Tình trạng hôn nhân: độc thân
dành cho học sinh 2
Tên: John Paul
Số: 2
Ngày sinh: 08/08/1993aul
Giới tính: Nam
Tình trạng hôn nhân: đã kết hôn
Một số phần của tên được thêm vào ngày sinh. Xin vui lòng cho tôi biết tại sao lại như vậy và làm cách nào để giải quyết nó?
Tôi đọc được rằng scanf không đáng tin cậy, nhưng tôi phải sử dụng scanf trong chương trình của mình.
Tôi là một lập trình viên xuất sắc, rất giỏi!