FoX_
31/03/2007, 00:30
Selam arkadaslar;
Benim sorunum su sekilde:
Belirttiginiz dizinde bir .txt dosyasi var ve ben bu dosyanin icindekileri okuyup ekrana yazdirmak istiyorum:
fPtr = fopen("deneme.txt","r");
fscanf(fPtr,"%s",ogrIsim);
fscanf(fPtr,"%s",ogrSoyAd);
fscanf(fPtr,"%d",¬1);
while(!feof(fPtr)){
printf("%s ",ogrIsim);
printf("%s ",ogrSoyAd);
printf("%d ",not1);
printf("\n");
fscanf(fPtr,"%s",ogrIsim);
fscanf(fPtr,"%s",ogrSoyAd);
fscanf(fPtr,"%d",¬1);
}
fclose(fPtr);
printf("Goruntuleme islemi bitti.\nYeni kayit icin (y), goruntuleme icin (g), cikis icin (c)\n");
}
Bu sekilde dosyadaki verileri dogru bir sekilde ekrana yaziyor.Sorunda burada iste.Neden bu sekilde ekrana yaziyor???
Bu kodun butun verileri nasil ekrana yazdirdigini anlayamadim.Cunku benim mantigima gore:
Eger alt alta siralanmis ad soyad 234324 gibi bir sey dusunursek:(3 satir oldugunu kabul edelim)
while ' a girmeden once ilk 3 veriyi okuyacak.While'a girdikten sonra okuduklarini yazdirip, ikinci satirdaki verileri okuyacak.Bunlari da ekrana yazdirdiktan sonra 3.(son) satirdaki verileri okuyacak.
Sorun tam bu noktada iste.Son satirdaki verileri okuduktan sonra pointer EOF'yi isaret etmiyor mu?Bu yuzden while'in basina geldiginde karsilastirma tutmadigi icin donguden cikip son okuduklarini yazdirmamasi gerekmez mi?
Aciklayabilirseniz sevinirim...
Benim sorunum su sekilde:
Belirttiginiz dizinde bir .txt dosyasi var ve ben bu dosyanin icindekileri okuyup ekrana yazdirmak istiyorum:
fPtr = fopen("deneme.txt","r");
fscanf(fPtr,"%s",ogrIsim);
fscanf(fPtr,"%s",ogrSoyAd);
fscanf(fPtr,"%d",¬1);
while(!feof(fPtr)){
printf("%s ",ogrIsim);
printf("%s ",ogrSoyAd);
printf("%d ",not1);
printf("\n");
fscanf(fPtr,"%s",ogrIsim);
fscanf(fPtr,"%s",ogrSoyAd);
fscanf(fPtr,"%d",¬1);
}
fclose(fPtr);
printf("Goruntuleme islemi bitti.\nYeni kayit icin (y), goruntuleme icin (g), cikis icin (c)\n");
}
Bu sekilde dosyadaki verileri dogru bir sekilde ekrana yaziyor.Sorunda burada iste.Neden bu sekilde ekrana yaziyor???
Bu kodun butun verileri nasil ekrana yazdirdigini anlayamadim.Cunku benim mantigima gore:
Eger alt alta siralanmis ad soyad 234324 gibi bir sey dusunursek:(3 satir oldugunu kabul edelim)
while ' a girmeden once ilk 3 veriyi okuyacak.While'a girdikten sonra okuduklarini yazdirip, ikinci satirdaki verileri okuyacak.Bunlari da ekrana yazdirdiktan sonra 3.(son) satirdaki verileri okuyacak.
Sorun tam bu noktada iste.Son satirdaki verileri okuduktan sonra pointer EOF'yi isaret etmiyor mu?Bu yuzden while'in basina geldiginde karsilastirma tutmadigi icin donguden cikip son okuduklarini yazdirmamasi gerekmez mi?
Aciklayabilirseniz sevinirim...