01/10/2018, 15:07
Đọc file bằng binary
Mình code đọc một file bằng nhị phân, đây là hàm đọc của mình. Lỗi ở chỗ fread, không đọc được. Nhưng khi mình thay bằng fscanf thì lại ok.
Không biết bị lỗi chỗ nào ^^
void readFile(FILE *fo, bac2s &x)
{
fread(&x.n, sizeof(int), 1, fo);
x.a = new int[x.n];
x.b = new int[x.n];
x.c = new int[x.n];
for (int i = 0; i < x.n; i++)
{
fread(&x.a[i], sizeof(int), 1, fo);
fread(&x.b[i], sizeof(int), 1, fo);
fread(&x.c[i], sizeof(int), 1, fo);
}
printf("
Doc xong");
fclose(fo);
}
struct:
struct bac2s
{
int n;
int *a, *b, *c;
};
main:
int main()
{
FILE *f;
f = fopen("hello.txt", "rb");
if (f == NULL)
{
printf("
Khong mo duoc file");
return 0;
}
bac2s x;
readFile(f, x);
printf("
%d", x.n);
for (int i = 0; i < x.n; i++)
{
printf("
%d %d %d", x.a[i], x.b[i], x.c[i]);
}
delete[]x.a;
delete[]x.b;
delete[]x.c;
_getch();
return 0;
}
file:
3
1 2 3
3 5 4
-4 9 -8
Bài liên quan
Địa chỉ đích gửi vào fread là 1 con trỏ kiểu char.Biến bien là kiểu gì đấy. Trong chương trình k có. Bạn có thể ép kiểu qua char
Tương tự biến x cũng phải ép qua *char
mình sửa lại rồi, bien sửa thành x
^^
mà bắt buộc là char hả ??
mình đâu có nhớ như v ^^
sửa như bn ns cuk ko dc