08.11.2014 Views

c_kitap

c_kitap

c_kitap

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

C ve Sistem Programcıları Derneği - C Ders Notları - Necati Ergin<br />

Nasıl fprintf işlevi, ekrana yazmak yerine, yazma işlemini birinci parametresiyle belirlenen<br />

dosyaya yapıyorsa, fscanf işlevi de, okumayı klavyeden yapmak yerine belirtilen bir<br />

dosyadan yapar. fscanf işlevi scanf işlevinden farklı olarak, birinci parametre değişkenine<br />

FILE türünden bir adres alır. İşlevin bildirimi aşağıdaki gibidir:<br />

int fscanf(FILE *, const char *, …);<br />

İşlevin geri dönüş değeri, dosyadan okunarak bellekteki alanlara yazılan değer sayısıdır.<br />

Hiçbir alana yazma yapılmadıysa, işlev 0 değerine geri döner. Eğer ilk alana atama<br />

yapılamadan dosyanın sonuna gelinmişse, ya da bir hata oluşmuşsa işlev EOF değerine<br />

geri döner. İkinci parametresine geçilecek yazıda kullanılacak format karakterleri scanf<br />

işlevi ile aynıdır. Aşağıdaki programı dikkatle inceleyin:<br />

#include <br />

#include <br />

#include <br />

#define SIZE 100<br />

#define PASS_GRADE 60<br />

char *name[50] = {"Ali", "Veli", "Hasan", "Necati", "Ayşe", "Kaan",<br />

"Selami","Salah","Nejla", "Huseyin", "Derya", "Funda", "Kemal", "Burak",<br />

"Ozlem", "Deniz", "Nuri", "Metin", "Guray", "Anil", "Umut", "Selda",<br />

"Belgin", "Figen", "Korhan", "İhsan", "Ufuk", "Necmettin", "Taylan",<br />

"Abdullah", "Perihan", "Soner", "Can", "Ata", "Berk", "Melahat", "Zarife",<br />

"Yelda", "Ertan", "Mustafa", "Gizem", "Funda", "Aleyna", "Simge", "Damla",<br />

"Kaan", "Kerim", "Cumali", "Ferda", "Sami"};<br />

char *fname[30] = {"Aslan", "Ozkan", "Eker", "Ergin", "Serce", "Kaynak",<br />

"Acar", "Aymir", "Erdin", "Doganoglu", "Avsar", "Ozturk", "Yılmaz",<br />

"Tibet", "Arkın", "Cilasun", "Yildirim", "Demiroglu", "Torun", "Polatkan",<br />

"Burakcan", "Kale", "Nergis", "Kayserili", "Duman", "Tansel", "Kurt",<br />

"Tonguc", "Melek", "Mungan"};<br />

int main()<br />

{<br />

FILE *fgrades, *fpass, *ffail;<br />

int no_of_lines, k;<br />

char name_entry[SIZE];<br />

char fname_entry[SIZE];<br />

int grade;<br />

int pass_counter = 0;<br />

int fail_counter = 0;<br />

srand(time(0));<br />

fgrades = fopen("notlar.txt", "w");<br />

if (fgrades == NULL) {<br />

printf("notlar.txt dosyasi yaratilamiyor!\n");<br />

exit(EXIT_FAILURE);<br />

}<br />

printf("notlar.txt dosyasi yaratildi!\n");<br />

no_of_lines = rand() % 2000 + 1000;<br />

for (k = 0; k < no_of_lines; ++k)<br />

fprintf(fgrades, "%s %s %d\n", name[rand() % 50], fname[rand() %<br />

30], rand() % 101);<br />

printf("notlar.txt dosyasina %d satir kayıit yazildi!\n", no_of_lines);<br />

fclose(fgrades);<br />

printf("notlar.txt dosyasi kapatildi!\n");<br />

fgrades = fopen("notlar.txt", "r");<br />

if (fgrades == NULL) {<br />

460

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!