tôi có chương trình sau đây:sử dụng fwrite() để viết một struct vào một tập tin
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAXLEN 100
typedef struct {int key; char data[MAXLEN];} record;
main(int argc, char *argv[])
{
int n, i;
record x;
FILE *fp;
fp = fopen(argv[1], "w+");
printf("How many records will be entered? \n");
scanf("%d", &n);
for (i=0; i<n; i++)
{
printf("Enter record: \n");
scanf("%d", &x.key);
scanf("%s", &x.data);
fwrite(&x, sizeof(record), 1, fp);
}
}
Những gì tôi đang làm là tạo ra hồ sơ từ người dùng nhập vào, và sau đó lưu trữ những "kỷ lục" vào một tập tin. Tuy nhiên, khi tôi sử dụng fwrite(), tệp được tạo ra có rất nhiều ký tự lạ được viết trong đó, thay vì chỉ đơn giản là có mỗi bản ghi với khóa và dữ liệu của nó. Bất cứ ai có thể cho tôi biết lý do tại sao nó viết tất cả các nhân vật kỳ lạ?
vì lỗi của tôi, tôi đã sửa tiêu đề. – me45