Gỡ lỗi khi đọc dữ liệu nhị phân

Em viết chương trình nhập dữ liệu vào file nhị phân sau đó nạp vào mảng sau đó xuất ra nhưng khi xuất ra thì chỉ xuất ra không hết dữ liệu ạ.

#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<string.h>
typedef struct
{
	char name[10];
	char mssv[10];
	char diemSo[3];
}sv;
void KhoiTao(sv&sinhvien)
{
	rewind(stdin);
	printf("Ten cua sv:");
	fgets(sinhvien.name, sizeof(sinhvien.name), stdin);
	rewind(stdin);
	printf("\nMssv cua sv");
	fgets(sinhvien.mssv, sizeof(sinhvien.mssv), stdin);
	rewind(stdin);
	printf("\nDiem cua sv:");
	fgets(sinhvien.diemSo, sizeof(sinhvien.diemSo), stdin);
}

void KhoiTaoMang(sv*SinhVien, FILE*p, int n)
{

	for (int i = 0; i < n; i++)
	{
		printf("Nhap vao sinh vien thu %d\n", i + 1);
		KhoiTao(SinhVien[i]);
	}
	fwrite(SinhVien, sizeof(sv), n, p);
	fclose(p);
}
int main()
{
	int tot;
	FILE*p;
	int i = 0;
	char line[100][100];
	p = fopen("D:/sinhvien.bin", "wb");
	int n;
	sv*sinhvien;
	printf("Nhap vao so hoc sinh:");
	scanf_s("%d", &n);
	sinhvien = new sv[n];
	KhoiTaoMang(sinhvien, p, n);
	p = fopen("D:/sinhvien.bin", "rb");
	while (fread(line[i],sizeof(sv),1,p))
	{
		//line[i][strlen(line[i]) - 1] = '\0';
		i++;
	}
	tot = i;
	printf("\n The content of the file are:");
	for (i = 0; i < tot; ++i)
	{
		printf(" %s\n", line[i]);
	}
	printf("\n");
	_getch();
}

Bạn nên format lại code, nhìn vậy là k ai muốn đọc r, chứ ns j đến sửa lỗi. :joy: :joy:

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?