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 />

}<br />

} while (sort_flag == NOT_SORTED);<br />

int main()<br />

{<br />

FILE *f;<br />

f = fopen("sayilar.dat", "w+b");<br />

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

printf("dosya yaratilamiyor!\n");<br />

exit(EXIT_FAILURE);<br />

}<br />

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

add_ints_to_file(f);<br />

print_file(f);<br />

sort_file(f);<br />

print_file(f);<br />

fclose(f);<br />

}<br />

return 0;<br />

main işlevi içinde çağrılan işlevlerden add_ints_to_file işlevi aldığı binary dosyanın sonuna<br />

rastgele tamsayıları formatsız olarak yazıyor. Daha sonra çağrılan print_file işlevi, binary<br />

dosyaya yazılan tüm sayıları ekrana yazıyor. sort_file işlevi ile dosyadaki tamsayılar<br />

küçükten büyüğe doğru sıralandıktan sonra print_file işleviyle yeniden yazdırılıyor.<br />

2. İşlev çağrıldığında dosya kapalıdır. İşlev, çağıran kod parçasından dosya ismini ister.<br />

Bu durumda işlev işini gerçekleştirmek için önce dosyayı açar. İşini gerçekleştirdikten<br />

sonra dosyayı kapatır. Aşağıda bir metin dosyasının içeriğini ekrana yazdıran bir işlev<br />

tanımlanıyor:<br />

#include <br />

#include <br />

#include <br />

void ftype(const char *file_name)<br />

{<br />

int ch;<br />

}<br />

FILE *f = fopen(file_name, "r");<br />

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

printf("cannot open %s\n", file_name);<br />

exit(EXIT_FAILURE);<br />

}<br />

while ((ch = fgetc(f)) != EOF)<br />

putchar(ch);<br />

fclose(f);<br />

483

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

Saved successfully!

Ooh no, something went wrong!