Không đọc được ma trận từ file

Em có tạo ra một file text là matran.txt như này
3
3
1 2 3
2 3 4
3 4 5
và đoạn code của em để đọc nó làNhưng mà lúc em chạy thì chả có gì em chưa biết em sai chỗ nào ai có thể chỉ giúp em với ạ

#include<stdio.h>
int main()
{
	FILE *f;
	f=fopen("matran.txt","r");
	int m[20][20];
	int i,j,hang,cot;
	fscanf(f,"%d",&hang);
	fscanf(f,"%d",&cot);
	for(i=1;i<=hang;i++)
	  for(j=1;j<=cot;j++){
	  	 fscanf(f,"%d",&m[i][j]);
	  }
	   
	fclose(f);
}

Làm sao bạn biết được bạn không đọc được ma trận?

1 Like

Em chạy nó không đọc được mà anh?Không hiện lên cái ma trận ở file text kia ạ.

Ý mình là bạn hãy miêu tả thế nào là không đọc được, bị lỗi hay là ra một cái kết quả không như bạn mong muốn. Bạn phải ghi rõ ra.

1 Like

Lúc chạy không có gì hiện ra hết anh ạ trống trơn.

Vậy thì là do bạn không viết lệnh ghi ra màn hình.

1 Like

Anh xem code của em thiếu lệnh nào thì chỉ rõ cho em với ạ.

Sao không viết thế này để in ra màn hình? Đúng ra bạn học cơ bản thì ngay từ đầu người ta dạy cái này trước khi đọc file chứ?

   for(i=1;i<=hang;i++)
	  for(j=1;j<=cot;j++){
	  	 printf("%d",m[i][j]);
	  }

Vả lại, bạn cho index chạy từ 1 trở đi, nếu ma trận của bạn có kích thước 20 thì sẽ bị ghi tràn ra ngoài array. Index chuẩn là chạy từ 0 chứ không phải 1. Trong trường hợp của bạn, khoảng index là [0, hang) hoặc [0, cot).

1 Like

Em tưởng không phải ghi ra màn hình vì mình lấy nó từ file text rồi chứ ạ.

Bạn muốn biết được trong máy tính có dữ liệu hay không thì hoặc là bạn dùng kính hiển vi để soi từng cái rãnh trên đĩa, hoặc soi từng electron trên vi mạch, hoặc là phải viết code hoặc chạy phần mềm nào đó để thể hiện dữ liệu lên màn hình.

1 Like

Dữ liệu thì em đã tạo ma trận trên file text rồi và em chỉ muốn lấy dữ liệu đó ra và in ra màn hình thôi.Khó hiểu gê.

Bạn thử dùng code của mình để in dữ liệu ra màn hình xem.

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