Olen tässä yrittänyt tehdä funktiota, joka kertoisi tiedoston pituuden, siis rivien määrän.
long pituus(string tiedosto_nimi) { long tiedosto_pituus; char teksti[2]; FILE *tiedosto = fopen(tiedosto_nimi.c_str(), "r"); while (!feof(tiedosto)) { fgets(teksti, 2, tiedosto); tiedosto_pituus++; } fclose(tiedosto); return tiedosto_pituus; }
nimet.txt:n sisältö:
Pasi 123 Heikki 1337 Erkki 715517 Hannu 7051
Tässä tapauksessa pituus("nimet.txt")
palauttaa 16429
Alusta se laskuri! Alustamattomana tiedosto_pituus voi sisältää käytännössä mitä vain.
long tiedosto_pituus = 0;
Nyt se palauttaa 45
Tosiaan, tuohan laskee tällä hetkellä tiedoston sisältämien merkkien määrän, eikä rivinvaihtojen määrää. Mikäli haluat laskea vain rivinvaihtojen määrän, niin sinun pitää lisätä jokin tarkistus, että onko luettu merkki rivinvaihto ja jos näin on, niin kasvatat laskuria.
Esim.
if (teksti[0] == '/n') tiedosto_pituus++;
'/n' tosin ei ole välttämättä ainoa tapa merkitä rivinvaihtoa, sillä eri käyttöjärjestelmät ja ohjelmat käyttävät joko tapaa /n, /r tai /r/n.
Joo nyt toimiikin kiitos kiitos. Ja noi on muutes \-merkillä toimivia eikä /:llä.
Aivokäpy :)
Aihe on jo aika vanha, joten et voi enää vastata siihen.