C De Dosya işlemleri Şu (text tabanli) su sekilde yapilir..
Kod: Kodu kopyalamak için üzerine çift tıklayın!
fopen("Dosya","acissekli");
Dosya, Belirlenen Yerde Var olmasi gerekmektedir. Aksi takdirde Program işlemi gerçekleştirmeyecektir.
Kod: Kodu kopyalamak için üzerine çift tıklayın!
r -> Okumak icin Kullanilir.
Örneğin ;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
#define OKU ibo.txt
FILE *dosya;
char buf[BUFSIZE];
dosya = fopen(OKU, "r");
if (dosya != NULL) {
while (fgets(buf, sizeof(buf), dosya)) {
buf[strlen(buf)-1] = 0;
printf("Bilgiler Sunlardir %s\n", buf);
}
Öncelikle Bence, Programda dosya kontrol edilmeli.
Bu sekilde Kontrol edebiliriz.
Kod: Kodu kopyalamak için üzerine çift tıklayın!
if (dosya != NULL) {
Dosya yok ise;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
if (dosya != NULL) {
printf("Böyle Bir dosya bulunamadi..");
SEKLİNDE Uyaririz.
eğer dosya var ise ve bilgileri vermek icin.
Kod: Kodu kopyalamak için üzerine çift tıklayın!
} else {
printf("%s", buf);
Bu sekil devam ederiz.
Kodlarimizi Birleştirirsek;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
if (dosya != NULL) {
printf("Böyle Bir dosya bulunamadi..");
} else {
printf("%s", buf);
}
Diğeri;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
w -> yazmak icin kullanilir, eğer o isimde bir dosya var ise, silinir 0'lanir. Eğer Dosya olmasa bile, kendisi olusturur..
Basit Bir program yazalim daha iyi anlamak icin. Toplama islemi icin olabilir.
Kod: Kodu kopyalamak için üzerine çift tıklayın!
#include <stdio.h>
main ()
{
int sayi1;
int sayi2;
int toplam;
// Bunlari kisaca, int sayi1,sayi2,toplam olarakda belirtebiliriz.
// toplama islemi.
toplam = sayi1 + sayi2;
// ekrana yazdirma
printf("İki sayi girin.\n");
//sayiyi alma
scanf("%d\n", &sayi1);
scanf("%d\n", &sayi2);
printf("Girdiginiz sayilar %d ve %d toplami %d", sayi1, sayi2, toplam);
return 0;
}
w işlevini kullanmak icin ise, programi su hale getiriyoruz..
Kod: Kodu kopyalamak için üzerine çift tıklayın!
#include <stdio.h>
main ()
{
int sayi1;
int sayi2;
int toplam;
// Bunlari kisaca, int sayi1,sayi2,toplam olarakda belirtebiliriz.
// toplama islemi.
toplam = sayi1 + sayi2;
// ekrana yazdirma
printf("İki sayi girin.\n");
//sayiyi alma
scanf("%d\n", &sayi1);
scanf("%d\n", &sayi2);
printf("Girdiginiz sayilar %d ve %d toplami %d", sayi1, sayi2, toplam);
FILE *dosya_yaz;
dosya_yaz=fopen("toxic.txt","w");
fprintf("%d,%d", sayi1, sayi2);
system("PAUSE");
return 0;
}
bir diğeri ise;
a -> sona ekleme anlamina gelir..
örneğin;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
// Dosyaya Yazdirma..
static void.........
..............
...................
..................
......................
....................
// dosya işlemi..
time_t irc_time;
struct tm tdate;
irc_time = time(NULL);
tdate = *localtime(&irc_time);
FILE * pFile;
pFile = fopen ("operskullananlar.txt", "a");
fprintf (pFile, "Tarih: %02d-%02d-%02d Saat: %02d:%02d Nick: %s IP: %s \n", tdate.tm_mday, tdate.tm_mon + 1,
tdate.tm_year - 100, tdate.tm_hour, tdate.tm_min, sptr->name, sptr->user->realhost);
Bu sekilde Kullanilir..
Bit tabanlı dosyalar için rb, ab,wb Kullanilir. Ve Bunlarin yaninda + simgesi olursa, hem okuma hemde yazma anlamina gelmektedir..
İyi calismalar..