-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDers 29 - FILE.c
More file actions
148 lines (128 loc) · 7.1 KB
/
Copy pathDers 29 - FILE.c
File metadata and controls
148 lines (128 loc) · 7.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
#include <stdio.h>
#include <stdlib.h>
/* "fopen: open file , dosya açma" "fclose: close file , dosya kapama" "w: write , yazma" "r: read , okuma" "a: add , ekleme"
gelgelelim zurnanın zırt dediği yere, dosya işlemleri...
açılışımızı fopen ile yapalım o zaman (no pun intended)
fopen fonksiyonun genel syntax'ı fopen aç parantez tırnak dosya_adresi tırnak virgül tırnak komut tırnak kapa parantez ==> fopen("dosya_adresi","komut")
bu fonksiyon "w: write" komutuyla kullanıldığında girilen adresteki isme ve yere göre YAZMAK için bir dosya oluşturur
int main() {
fopen("C:\\Users\\Aras Güngöre\\Desktop\\falan filan\\Merhaba Dünya.txt","w"); //masaüstümdeki "falan filan" adlı dosyamın içinde "Merhaba Dünya" isimli boş bir metin belgesi oluştu
return 0; //ters slash'lar printf içinde \n,\b,\t gibi kaçış dizileri (escape sequence) için kullanıldığından ters slash'ın kendisi iki tane ters slash ile ifade edilir
} //ayrıca Türkçe karakterler dosya işlemlerinde sorun yaratmaz ;)
"putc/fputc: put character in file , yazma" "fputs: put string in file , toplu yazma"
normalde puts ve printf fonksiyonları siyah ekrana (konsola) metin yazdırmak için kullanılırken putc, fputc, puts fonksiyonları dosyaların içine metin yazdırmak için kullanılır
fputc(x,d): d adlı göstericinin tuttuğu dosyaya x karakterini yazdırır
printf("%c",karakteradi) fonksiyonunun kankası
putc(x,d): fputc ile birebir aynı, birbirlerinin yerine kullanılabilir (bkz. fputc)
fputs(x,d): d adlı göstericinin tuttuğu dosyaya x katarını yazdırır
printf("%s",kataradi) ve puts(kataradi) fonksiyonlarının kankası
şu 3 fonksiyondan HİÇBİRİ otomatik olarak satır atlamaz, yani newline yapmaz
ayrıca, en son bir dosyayla işimiz bittiğinde o dosyayı kapatmak için fclose fonksiyonu kullanılır
int main() {
FILE *dosya;
dosya=fopen("C:\\Users\\Aras Güngöre\\Desktop\\C-ikiş\\falan filan\\metin1.txt","w");
fputc('a',dosya);
fputc('b',dosya); //metin2 adlı metin belgesine ilk "abv" yazdırdım
fputc('v',dosya); //alternatif olarak putc kullanılabilir
fputs("\n\nDonald Trump",dosya); //sonra da 2 satır atlayıp "Donald Trump" yazdırdım
fclose(dosya);
}
int main() {
FILE *metinbelgesi;
char veri1[20]="Bilgisayar ",veri2[20]="Muhendisligi ",veri3[20]="Bolumu";
metinbelgesi=fopen("C:\\Users\\Aras Güngöre\\Desktop\\C-ikiş\\falan filan\\metin2.txt","w");
fputs(veri1,metinbelgesi);
fputs(veri2,metinbelgesi);
fputs(veri3,metinbelgesi);
}
"getc/fgetc: get character from file , okuma" "fgets: get string from file , toplu okuma"
normalde gets ve scanf fonksiyonları konsoldan kullanıcının klavyeyle sonradan girdiği metni okumak (veri almak) için kullanılırken getc, fgetc, fgets fonksiyonları dosyaların içinden metin okumak için kullanılır
fgetc(d): d adlı göstericinin tuttuğu dosyadan bir karakter okur
scanf("%c",&karakteradi) fonksiyonunun kankası
getc(d): fgetc ile birebir aynı, birbirlerinin yerine kullanılabilir (bkz. fgetc)
fgets(x,n,d): d adlı göstericinin tuttuğu dosyadan yeni satır (\n: newline) ya da dosya sonu (EOF: End of File) gelene kadar n tane karakterden oluşan bir katar okur ve bunu x adlı katara eşitler (strncpy gibi)
scanf("%s",kataradi) ve gets(kataradi) fonksiyonlarının kankası
tabii bu fonksiyonları kullanabilmek için fopen fonksiyonunu "r: read" komutuyla kullanacağız ve önceden oluşturulmuş bir dosyayı OKUMAK için açacağız
int main() {
FILE *belge;
char karakter;
belge=fopen("C:\\Users\\Aras Güngöre\\Desktop\\C-ikiş\\falan filan\\oku_bunu.txt","r");
do {
karakter=fgetc(belge); //alternatif olarak getc kullanılabilir
printf("%c",karakter); //dosyadan karakteri al ve aldığın karakteri olduğu gibi konsola yazdır
} while(karakter!=EOF); //böylelikle tüm dosyadaki metin aynen konsola yazdırılmış olur
fclose(belge);
}
int main() { int main() {
FILE *belge; FILE *belge;
char katar[50]; char katar[50];
belge=fopen("C:\\Users\\Aras Güngöre\\Desktop\\C-ikiş\\falan filan\\oku_bunu2.txt","r"); belge=fopen("C:\\Users\\Aras Güngöre\\Desktop\\C-ikiş\\falan filan\\oku_bunu2.txt","r");
fgets(katar,6,belge); //son karaktere otomatik olarak NULL atanacağından 5 karakter almak 6 koydum fgets(katar,50,belge); //"Iyi geceler Izmir Sirinyer"
puts(katar); //ilk beş karakter: "Iyi g" puts(katar);
fgets(katar,11,belge); }
puts(katar); //sonraki 10 karakter: "eceler Izm"
fgets(katar,16,belge); //12. karakter newline olduğu için 11 karakterden sonra okumayı kesecek
puts(katar); //sonraki 11 karakter: "ir Sirinyer"
fclose(belge);
}
int main() {
FILE *fp1; int i;
if((fp1=fopen("C:\\Users\\Aras Güngöre\\Desktop\\C-ikiş\\falan filan\\alfabe.txt","w"))==NULL) {
printf("Dosya açma hatası!");
exit(1);
}
for(i='a';i<='z';i++)
fputc(i,fp1); //alfabeyi harf harf "alfabe" adlı metin belgesine yazdır
fclose(fp1);
if((fp1=fopen("C:\\Users\\Aras Güngöre\\Desktop\\C-ikiş\\falan filan\\alfabe.txt","r"))==NULL) {
printf("Dosya açma hatası!");
exit(1);
}
for(i='a';i<='z';i++)
printf("%c",fgetc(fp1)); //metin belgesinden okuduğun harfleri (alfabeyi) sırayla konsola yazdır
fclose(fp1);
}
"fprintf: print formatted in file" "fscanf: scan formatted in file"
printf ve scanf ile neredeyse tıpatıp aynı olan fprintf ve fscanf'in bu ikisinden tek farkı konsola yazdırıp konsoldan okumak için değil dosyaya yazdırıp dosyadan okumak için kullanılmaları
fprintf ve fscanf ilaveten bir dosya göstericisini parametre olarak kullanır, bir de son olarak:
r: okuma için bir metin dosyası açar
w: yazma için bir metin dosyası oluşturur
a: bir metin dosyasına ekleme yapar
r+: okuma ve yazma için bir metin dosyası açar
w+: okuma ve yazma için bir metin dosyası oluşturur
a+: okuma ve yazma için bir metin dosyası oluşturur veya ekleme yapar
int main() {
int a=10,b=20;
FILE *dosya=fopen("C:\\Users\\Aras Güngöre\\Desktop\\C-ikiş\\falan filan\\fprintf.txt","w");
fprintf(dosya,"Merhaba Dunya\nCorona virusunun amina koyam\n%d+%d=%d",a,b,a+b);
fclose(dosya);
}
int main() {
int i;
char isim[50];
FILE *fptr=fopen("C:\\Users\\Aras Güngöre\\Desktop\\C-ikiş\\falan filan\\karaliste.txt","w");
if(fptr==NULL) {
printf("Error 404 file not found");
return 0;
}
puts("*****Kara listeye yazilacaklar*****"); //otomatik newline bırakır
fputs("***** Kara Liste *****\n",fptr); //otomatik newline bırakmaz
for(i=1;i<=10;i++) {
printf("Isim giriniz: ");
gets(isim); //otomatik newline bırakır
fprintf(fptr,"%d. %s\n",i,isim); //fprintf de printf gibi otomatik newline bırakmaz
}
fclose(fptr);
return 0; //demek ki sadece puts ve gets fonksiyonları newline bırakıyormuş
}
*/
int main () {
char str1[10],str2[20],str3[10];
int ay,yil;
FILE *fp=fopen("C:\\Users\\Aras Güngöre\\Desktop\\C-ikiş\\falan filan\\tarih.txt","w+");
fputs("Bugun tarihlerden 16 subat 2020",fp);
rewind(fp); //okuma işlemini en başa aldı
fscanf(fp,"%s %s %d %s %d",str1,str2,&ay,str3,&yil);
printf("%s %s %d %s %d",str1,str2,ay,str3,yil);
fclose(fp);
}