Mình cũng không dám chắc lắm nhưng bạn thử chuyển sang thao tác với tệp văn bản xem nào.
như vậy sẽ cần thay bằng fopen("index.sl","w");
và dùng fprintf thay vì fread,bạn thử xem nhé!
Cho mình hỏi:mình đang phải vẽ 1 cây nhị phân AVL
Mình không muốn nhập từ bàn phím các nút bằng Hàm "Insert" viết đúng
dc sử dụng như sau Insert(a,root) với a là key, root la con trỏ.
Mình muốn xuất dư liệu từ tệp "index.txt" với các số (6 7 8 9 12 14 15...)
mình đã làm :
[RIMG]FILE *fp;
fp = fopen("index.sl", "wb");
while (fread(&(a),sizeof(int),10,fp)>0)
insert(a,root);
fclose(fp);[/RIMG]
nhưng toàn bị lỗi hiện các số linh tinh vd:8241,8346....
hoặc có hiện thì các nút lại ở vị trí linh tinh!
Giúp mình với.
Mình cũng không dám chắc lắm nhưng bạn thử chuyển sang thao tác với tệp văn bản xem nào.
như vậy sẽ cần thay bằng fopen("index.sl","w");
và dùng fprintf thay vì fread,bạn thử xem nhé!
Hàm fread của bạn đọc kiểu nhị phân mà. Theo như chương trình bạn viết thì nó đọc vào 2 byte. Trong khi đó file của bạn lại là file văn bạn. Nếu fread đọc vào nó sẽ đọc được ký tự '6' và khoảng trắng. Bạn nên thay fread bằng fscanf và kết hợp với hàm feof để kiểm tra hết file thì chương trình sẽ đọc đúng.
Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.