Forum Linux Mint Polska

Autor Wątek: c++ zliczanie wierszy w pliku  (Przeczytany 3093 razy)

Offline krzysztow

  • Miętowe nasionko
  • *
  • Wiadomości: 20
  • Punkty: 0
  • Środowisko graficzne: Mate
  • Wersja systemu: Linux Mint 17.1
c++ zliczanie wierszy w pliku
« dnia: Styczeń 21, 2015, 01:20:25 am »
Witam, dla "zabawy" wziołem się za c++, doszedłem do zapisu i odczytu danych z pliku i chyba to będze koniec mojej zabawy. Mimo że przeczytałem kila tematów na innych forach to coś ciągle nie działa. Problem jak w temacie - chcę policzyć ile lini jest w pliku. Z tego co zrozumiałem:
pętla warunkowa sprawdza czy koniec pliku, jeśli nie to pobieram linie i do licznika++.
Czy dobrze myślę i jak zapisać w sposób jasny dla kompilatora?

Offline bossot

  • Miętowa sadzonka
  • **
  • Wiadomości: 79
  • Punkty: 0
Odp: c++ zliczanie wierszy w pliku
« Odpowiedź #1 dnia: Styczeń 21, 2015, 06:50:40 am »
Najłatwiej będzie zrobić to whil-em, np tak:
#include <iostream>
#include <string>
#include <fstream>


using namespace std;
int main()

{
    string linia;
    int licznik = 0;
    fstream plik;
    plik.open("zest.txt");
    while (getline(plik, linia)) licznik ++;
    plik.close();
    cout << "było " << licznik << " linii\n";
}
while (getline(plik, linia)) działa prawidłowo dlatego, że w pewnym uproszczeniu getline zwraca "prawda" (i pętla się wykonuje) dopóki w pliku coś jest. A że wczytuje liniami, starczy te "prawdy" policzyć i już mamy ilość linii w pliku. Możesz też podobne konstrukcje (np whille (cin >> zmienna)) stosować do wczytania nieokreślonej liczby danych z klawiatury, wtedy kończysz "z palca" przez ctrl + c albo ctrl + d zależnie od twojego systemu operacyjnego.

Offline moarcode

  • Siewca hejtu
  • Globator Moderalny
  • Spamerzy
  • *******
  • Wiadomości: 1800
  • Punkty: 1000
  • Płeć: Mężczyzna
  • 1, 2,3 próba klawiatury.
  • Środowisko graficzne: Inne
  • Wersja systemu: Linux Mint 17.1
Odp: c++ zliczanie wierszy w pliku
« Odpowiedź #2 dnia: Styczeń 21, 2015, 10:47:26 am »
Proponuję zaczać od innego języka na początek, aby załapac podstawy programowania - np python.
C/C++ to dość trudne języki do ogarnięcia dla początkującego.
Look closer, fall deeper.

Offline Ulvhedin

  • Globator Moderalny
  • Spamerzy
  • *******
  • Wiadomości: 1627
  • Punkty: 1118
  • Płeć: Mężczyzna
  • Środowisko graficzne: Mate
  • Wersja systemu: 18
Odp: c++ zliczanie wierszy w pliku
« Odpowiedź #3 dnia: Styczeń 21, 2015, 19:04:44 pm »
Udowodnij ze python jest łatwiejszy niz C/C++.
Do nauki programowania C/C++ jak kazdy inny jest idealny. Powiem nawet ze akurat ten jezyk jest lepszy bo trzeba samodzielnie kontrolowac przydział zasobów i je zwalniac w miare potrzeb. Czasem dobrze jest wiedziec jak sie odbywa to bez pozostawiania wszystkiego GarbageCollectorowi.

Offline krzysztow

  • Miętowe nasionko
  • *
  • Wiadomości: 20
  • Punkty: 0
  • Środowisko graficzne: Mate
  • Wersja systemu: Linux Mint 17.1
Odp: c++ zliczanie wierszy w pliku
« Odpowiedź #4 dnia: Styczeń 21, 2015, 20:21:57 pm »
Dziękuję, działa.
« Ostatnia zmiana: Styczeń 24, 2015, 21:25:28 pm wysłana przez krzysztow »