Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++: Tiedoston lukeminen kaataa

Kray [22.03.2007 18:16:45]

#

Joo, mitä vikaa tässä on? Kun laitan sen kommentiksi, kaikki toimii, mutta kun käytän sitä, ohjelma heittää heti pihalle! Mikä vikana? C/C++ ja SDL.

FILE *fpt;
  int a,b;
  fpt = fopen("/data/maps/map1.map", "r");

  for(a=0; a<9; ++a)
  {        for(b=0; b<11; ++b)
           {
                    alue_maa[a][b]=getc(fpt);
           }
  }
  fclose(fpt);

EDIT:Otsikkoon tuli virhe.

Metabolix [22.03.2007 18:19:51]

#

Tarkistapa, aukeaako tiedosto, eli fopen-rivin jälkeen tarkista, että fpt != NULL. Ota sitten tiedoston polun alusta ensimmäinen kauttaviiva pois ja kokeile uudestaan.

(Korjasin otsikon. Yleensä kaikki "ongelmat" sun muut voi jättää pois, harvoinpa täällä muusta puhutaan kuin ongelmista. ;) Lisäksi ongelman voi paikallistaa sen verran tarkemmin, että esimerkiksi tuossa pätkässä SDL ei selvästikään tee yhtään mitään, joten sitä tuskin tarvitsee otsikossa asti mainita. Sitten on myös kiva, jos otsikko mahtuu etusivullakin kokonaan näkyviin, kun pitkät otsikot katkeavat automaattisesti.)

Markus [23.03.2007 11:54:45]

#

"/data/maps/map1.map"

Oletko varma, että et tarkoita:

"data/maps/map1.map" tai "./data/maps/map1.map"

KoodiNoppa [23.03.2007 15:13:54]

#

++a ja ++b? pitäisi kai olla a++ ja b++...tai sitten olen taas jättänyt jonkin tärkeän opin väliin :O

FooBat [23.03.2007 15:17:54]

#

KoodiNoppa kirjoitti:

++a ja ++b? pitäisi kai olla a++ ja b++...tai sitten olen taas jättänyt jonkin tärkeän opin väliin :O

Olet jättänyt tärkeän opin väliin.

Yksinkertaistettuna:

a = 1;
x = a++; //x = 1, a = 2

a = 1;
x = ++a; //x = 2, a = 2;

KoodiNoppa [23.03.2007 15:46:42]

#

Niin arvelinkin :) kiitos tiedosta.

Kray [23.03.2007 16:22:11]

#

Kiitti, se ylimääräinen kauttahan se oli...

Vastaus

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

Tietoa sivustosta