Neden ekrana bir şey yazdırmıyor anlayamadım

#include <stdio.h>

int main(void){

int k = 10 , l = 20 , m=87 , n=55;

int a[2][2];

int i , j;

FILE *outfile , *infile ;

outfile = fopen("test.txt","w");
fprintf(outfile,"%d %d %d %d",k,l,m,n);
fclose(outfile);

infile = fopen("test.txt","r");

for ( i = 0 ; i < 2 ; i++)
	for( j=0 ; j<2; j++)
		fscanf(infile,"%d",a[i][j]);
		
fclose(infile);
	
printf("%d",a[1][1]);

return 0;

}

Ekrana 55 sayısını yazdırmasını bekliyorum ama ne hata veriyor ne ekrana bir şey yazdırıyor durumumu anlamama yardımcı olur musunuz ?

1 Beğeni

#include <stdio.h>

int main(void){

int k = 10 , l = 20 , m=87 , n=55 , sayi;

int a[2][2];

int i , j;

FILE *outfile , *infile ;

outfile = fopen(“test.txt”,“w”);
fprintf(outfile,"%d %d %d %d",k,l,m,n);
fclose(outfile);

infile = fopen(“test.txt”,“r”);

for ( i = 0 ; i < 2 ; i++)
for( j=0 ; j<2; j++){
fscanf(infile,"%d",&sayi);
a[i][j]=sayi;
}

fclose(infile);

printf("%d",a[1][1]);

return 0;

}

Şeklinde düzenleyince istediğim çıktıyı aldım . fscanf ile direk diziye atama yapılmıyormuş gördüğüm kadarıyla önce bir int değişkenine atadım daha sonra bu değişkeni dizinin elemanı olarak tanımladım.

Kendi kendime çözsemde birilerinin işine yarayabilir diye konuyu silmiyorum :slight_smile:

Kodlar iki ``` satiri arasina

a.c: In function ‘main’:
a.c:21:19: warning: format ‘%d’ expects argument of type ‘int *’, but argument 3 has type ‘int’ [-Wformat=]
   21 |   fscanf(infile,"%d",a[i][j]);
      |                  ~^  ~~~~~~~
      |                   |      |
      |                   int *  int

Derleyicini tum uyarilar acik olacak sekilde ayarlaman lazim.