Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++: Apua tallennukseen

DumTom [17.02.2012 16:55:35]

#

Miksi seuraava koodi ei suostu tallentamaan tietoja vaan kaikki päättyy resettiin ja exittiin?

bool Dungeon::SaveArea(const char *nimi)
{
kokoZ=1;kokoX=30;kokoY=30;
short t,apu,x,y,z;
FILE *C;
if((C = fopen(nimi, "wb+")))
    {
    for (z=0;z<1;z++)
        {
        for (y=0;t<kokoY;y++)
            {
            for (x=0;x<kokoX;x++)
                {
                apu=lattia[x][y][z];fwrite(&apu,sizeof(short),1,C);
                apu=seina[x][y][z];fwrite(&apu,sizeof(short),1,C);
                apu=ovet[x][y][z];fwrite(&apu,sizeof(short),1,C);
                apu=huonekalu[x][y][z];fwrite(&apu,sizeof(short),1,C);
                }
            }

        }
    }else {Reset();exit(0);}
fclose(C);
return true;
}

Anaatti [17.02.2012 17:48:43]

#

Mikäköhän tuossa rivillä 10 olevalla pätkällä on idea?

for (y=0;t<kokoY;y++)

Tuossahan siis verrataan t:tä kokoY:n vaikka varmaan pitäisi verrata y:n kanssa.
Myöskään en ymmärrä tuon t:n tarkoitusta, koska sitä ei alusteta eikä käytetä missään.

Kannaattaa vielä laittaa tuonne elseen perror:

perror ("Error opening file");

niin tiedät miksi tiedosto ei avaudu.

DumTom [17.02.2012 19:31:18]

#

Kiitos sain toimimaan,en huomannut tuota hiton teetä.
Ratkaisu ei kuitenkaan ollut aivan ihan siinä.
Sain toimimaan kun käytin seuraavia kutsuja:

area->SaveArea("area.dat");
area->LoadArea("era.dat",true);

Voisiko joku kertoa kuinka määritän polun tuohon jos esimerkiksi haluan area.datin original kansion sisälle joka on peliä pyörittävän kansion alikansio?

Anaatti [17.02.2012 20:16:56]

#

Näinhän sen pitäisi käydä:

area->SaveArea("original/area.dat");

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta