Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++: Tekstitiedostossa liikkuminen

selli [06.01.2015 16:29:35]

#

Moi,

Miten pääsee tekstitiedostossa rivin alkuun?

Eli tarkoitus on lukea tekstitiedoston viimeisen rivin alkua.
Alla koodia millä pääsee tiedoston loppuun ja x tavua taakseppäin

file.seekg(0, ios_base::end); // käskyllä tiedoston loppumerkkiin
file.seekg(-2, ios_base::cur); // käskylla peruutetan 2 tavua viimeisen rivin loppuun

MUTTA miten pääsen nyt tämän viimmeisen rivin alkuun, jonka pituus ei ole vakio?

Oskuz [06.01.2015 17:39:39]

#

Vaikka selaamalla.

file.seekg(0, ios_base::end); // käskyllä tiedoston loppumerkkiin
file.seekg(-2, ios_base::cur); // käskylla peruutetan 2 tavua viimeisen rivin loppuun

while( file.peek() != '\n' ){
     file.seekg( -1, ios_base::cur);
}
file.seekg( 1, ios_base::cur); //ollaan rivin alussa

Metabolix [06.01.2015 20:37:03]

#

selli kirjoitti:

käskylla peruutetan 2 tavua viimeisen rivin loppuun

Tiedoston lopussa ei välttämättä ole rivinvaihtoa, ja rivinvaihto ei useinkaan ole kahta tavua vaan yhden. Siis viisaampaa olisi tarkistaa ensin, onko tiedoston viimeinen merkki rivinvaihto, ja jos on, voi peruuttaa siitä yhden taaksepäin.

selli [06.01.2015 21:53:58]

#

Kiitti vastaajille, noinhan se meni. Rivin alku löytyi.

Vastaus

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

Tietoa sivustosta