PDA

Tam Sürümünü Görmek İçin : binary structure sorusunda display hatasi?


CaCao
24/03/2008, 14:14
slm arkadaslar

bu programda binary ye yazilanlari ekranda display etmeye calisiyorum ama programda hata veriyor

isaretledigim yerde hata var bulamadim

yardim ederseniz sevinirim


void displayfile (char filename[])
{
FILE *fp;
// char name[NAMESIZE]; // name to be written to 2nd text file
cd_t cdtitle;
cd_t type;
cd_t composer;
cd_t numpieces;
// Open file
fp = fopen (BINFILE, "rb");
if (fp == NULL)
{
printf ("Cannot open file %s.\n", filename);
exit (EXIT_FAILURE);
}
printf ("Contents of %s:\n", filename);
// Read file line by line

//hata burda ***************************************

fread (cd.cdtitle, sizeof(cd.cdtitle), 1, fp); // Write to binary file
fread (cd.cdtype, sizeof(cd.cdtype), 1, fp); // Write to binary file
fread (cd.composer, sizeof(cd.composer), 1, fp); // Write to binary file
fread (cd.numpieces, sizeof(cd.numpieces), 1, fp);
while ( !feof(fp) )
{
printf ("%-24s %-24s %-24s %8d\n",cd.cdtitle,cd.cdtype,cd.composer,cd.numpieces); // Display line
fread (cd.cdtitle, sizeof(cd.cdtitle), 1, fp); // Write to binary file
fread (cd.cdtype, sizeof(cd.cdtype), 1, fp); // Write to binary file
fread (cd.composer, sizeof(cd.composer), 1, fp); // Write to binary file
fread (cd.numpieces, sizeof(cd.numpieces), 1, fp);
}
// Close file
fclose (fp);
} // end displayfile


acehreli
24/03/2008, 19:36
cd'nin ve ogelerinin tUrlerini bilmiyoruz.

Akla ilk gelen, dosyada cd.cdtitle icin cok sayida karakter var ama sizeof(cd.cdtitle) ornegin 4 gibi kucuk bir deger. Onun icin okunan her sey kaymis oluyor. Yani dosyada cd.cdtitle olarak duran besinci karakteri cd.cdtype'a okuyorsun, vs.

O sizeof'lari ekrana yazdirip bakmak ise yarayabilir.

Ayrica fread'lerin aciklamalarinda "Write to" gibi yaniltici seyler var. ;)

Ali

CaCao
24/03/2008, 19:44
o commentler yanlislika baska bi yerden copy paste olunca oyle eklendi :D
tesekkurler