Jump to content
Forumu Destekleyenlere Katılın ×
Paticik Forumları
2000 lerden beri faal olan, çok şukela bir paylaşım platformuyuz. Hoşgeldiniz.

c'de kafama takılan bir nokta


Mosquito

Öne çıkan mesajlar

fread ve fwrite komutları ile structure başka bir şeyi dosyaya yazdıramaz mıyız?structure yazdırırken sorun olmuyor ama int veya float yazdırmaya çalışınca sapıtıo nedir bunun olayı.

turbo c görüyoruz. komut olarak aşağıdakini deniyorum ama dosyaya abuk sabuk şekiller yazıyor prog.
fwrite(&sayi,sizeof(int),1,file);
fread(&sayi,sizeof(int),1,file);
Link to comment
Sosyal ağlarda paylaş

Sevgili Paticik Dostu Mosquito;
1...
Bu başlğını "Donanım/Yazılım" bölümüne açsaydın sana çok daha önce cevap verebilirdim: :)
2...
Gelelim soruna,fwrite,fread strc. yazdırmak için değildir.Belirli bir hazfıza kesimini yazdırmak içindir.
fwrite(&sayi,sizeof(int),1,file);
komut ile hafızadaki "sayi"yi dosyaya yazdırmış oluyorsun fakat IA-32 uyumlu PC sistemlerinde tam sayılar Intel Word ve Intel Double Word formatlarına göre tutulurlar.Eğer karakter olarak sayıyı yazdırmak istiyorsan önce bu formatı "null-terminated string" haline getirmelisin.

char *cSonuc;
cSonuc=new char[20];
wsprintf(cSonuc,"%ul",&sayi);
fwrite(cSonuc,1,strlen(cSonuc),file);

gibi ....[signature][hline]1...2...3... ee ya sonrası ?
Criminal2's HomePage
Link to comment
Sosyal ağlarda paylaş

Borland'ın help'inde stiringler için olan example'ı intler için değiştirdim çalışıyo.

programın ytamamını yazarsan yardımcı olabiliriz sanırım.

taa birinci sınıfta gördüğüm için biraz unuttum.ama çok sevdiğim bu dili unuttuğum için kendime kızıyorum.ben C ile "File System" yazmıştım be.işte böle böle unutmamaya çalışıyorum.

/* fread example */

#include
#include

int main(void)
{
FILE *stream;
int msg=5;
int buf;



if ((stream = fopen("DUMMY.FIL", "w+"))
== NULL)
{
fprintf(stderr, "Cannot open output file.n");
return 1;
}

/* write some data to the file */
fwrite(&msg,sizeof(int), 1, stream);
/* fread example */

/* seek to the beginning of the file */
fseek(stream, SEEK_SET, 0);

/* read the data and display it */
fread(&buf, sizeof(int), 1, stream);
printf("%dn", buf);



fclose(stream);
return 0;
}
[signature][hline]Mazhar Alanson-Cem Yılmaz:
Bir zamanlar fırtınalar estirirdim
Galiba tekrar estireceğim.
Link to comment
Sosyal ağlarda paylaş

tamam sorunu anladım.dosyaya yazdıktan sonra direk notepadle açıp içindekilere bakıyordum.orda acayip şekiller olunca yazma sırasında bir sorun oldu zannetmiştim.
ama fread ile dosyadan okuma yaptığımda programda sayılar düzgün şekilde listeleniyor.
bu arada soruya ra_d bana daha yakın bir açıklamada bulunmuş.
diğerinden pek birşey anlamadım.
Link to comment
Sosyal ağlarda paylaş

Ya artik normal bir sekilde yardim edip, su tur gereksiz polemiklerden kacinin. Yok CPU bilecekmis bilmemne. Of.

Odak noktasi, Mosquito`nun problemi ve cozumu olmali. Ondan sonraki tartismalari lutfen ozel mesajlarinizda yapin.[signature][hline]There are 10 types of people in the world: Those who understand binary, and those who don't..

seviyeli muhabbet icin ozelime gelin
bekliyorummm
Link to comment
Sosyal ağlarda paylaş

sınavda çıkabilcek tipte bir program yazdım ama numaraya göre sıralama yaptıktan sonra dosyaya yazıyor structure'ın içindekileri. daha sonra bunları ekrana yazarken 2 kere yazıyor aynı şeyleri.
structure'ın içinde a,b,c verileri olsun mesela ekrana a-b-c yazması gerekirken a-b-c a-b-c olarak yazıyor muhtemelen while döngüsünde bir hata yaptım ama bulamıyorum bir türlü
takıldığım kısım aşağıda. kodun tamamı ise burda

ps:bu arada uzantıyı jpg yapınca explorer normal txt dosyasıymış gibi açıyor negzel

//////////
while (!feof(st)){
for (k=0;k fread(&ass[k],sizeof(struct aras),1,st);
printf("n%dt %st %fn",ass[k].num,ass[k].isim,ass[k].puan);}}
////////
Link to comment
Sosyal ağlarda paylaş

kodu bu şekilde değiştirince sorun kalmadı ama mantığını pek anlayamadım açıklayabilir misiniz.Niye ilkinde hata oldu.


//////////
for (k=0;k fread(&ass[k],sizeof(struct aras),1,st);
while (!feof(st)){
for (k=0;k printf("n%dt %st %fn",ass[k].num,ass[k].isim,ass[k].puan);}
for (k=0;k fread(&ass[k],sizeof(struct aras),1,st);}
////////
Link to comment
Sosyal ağlarda paylaş

×
×
  • Yeni Oluştur...