30/09/2018, 16:45
Thắc mắc về đọc dữ liệu từ tập tin nhị phân
Ví dụ em có tạo 1 tập tin nhị phân chứa thông tin của 1 quyển sách:
#include <stdio.h>
#define MAX 51
struct bookinfo{ // thông tin sách
char *bname; // tên sách
char *author; // tên tác giả
};
void main(){
FILE *f = fopen("output.bin", "wt");
bookinfo a;
a.bname = "1 lit nuoc mat";
a.author = "Aya";
fwrite(&a, sizeof(bookinfo), 1, f); // n = 1
}
Câu hỏi đặt ra là khi dùng hàm fread
để đọc từ tập nhị phân vừa tạo thì làm sao xác định được số block n muốn đọc? Làm sao để phân biệt đâu là tên sách, tên tác giả, nếu có nhiều hơn 1 quyển sách trong tập tin nhị phân?
Mong mọi người giúp đỡ. Em xin cảm ơn
Bài liên quan
Em phải xác định chiều dài của bname và author trước chứ. Nếu không thì làm sao đọc. Ví dụ name là 255, author cũng 255
dùng chữ kí hoặc kí hiệu hoặc cờ gì đó
không thì phải ghi vào file độ dài tên sách luôn
Trường hợp này nên fix luôn chiều dài cho dễ tính.
Đề yêu cầu đọc thông tin sách từ tập nhị phân với cấu trúc ví dụ như: tên sách (bname) là “tối đa” 50 ký tự. Vấn đề là em không biết xác định chiều dài để đọc vào, vì đâu phải tên sách nào cũng bấy nhiêu kí tự
Em cho tên sách
bname
có độ dài là 50. Nếu tên sách ngắn hơn 50 thì em ghi số 0 vào. Sau này đọc ra đúng độ dài là 50 thì sẽ đọc được toàn bộ tên sách.À, việc cần làm là viết hàm đọc vào thôi anh ạ. Hàm trên là em dùng để tạo file test hàm đọc.