[C++] Plik do odczytu

robertos18
Użytkownik
Użytkownik
Posty: 423
Rejestracja: 6 paź 2014, o 20:03
Płeć: Mężczyzna
Lokalizacja: Torun
Podziękował: 127 razy
Pomógł: 2 razy

[C++] Plik do odczytu

Post autor: robertos18 »

Napisz fragment kodu w ktorym otworzysz plik tekstowy do odczytu i wydrukujesz na ekranie liczbe wierszy wystepujacych w tym pliku.

Kod: Zaznacz cały

#include<iostream>
#include<fstream>

using namespace std;
int main()
{
    int zmienna=0,x;
    ifstream plik;
    plik.open("linie",ios::in);
    while(plik.good());
    {
        plik>>x;
        zmienna++;
    }
    cout<<zmienna;
    plik.close();
    return 0;
}
Dobrze wykonane zadanie?
Ostatnio zmieniony 11 mar 2015, o 09:44 przez Afish, łącznie zmieniany 1 raz.
Powód: Poprawa wiadomości.
lukequaint
Użytkownik
Użytkownik
Posty: 219
Rejestracja: 5 maja 2010, o 18:27
Płeć: Mężczyzna
Lokalizacja: Wrocław
Podziękował: 1 raz
Pomógł: 75 razy

[C++] Plik do odczytu

Post autor: lukequaint »

Źle. Najwyraźniej w ogóle nie sprawdziłeś, czy Twój program działa. Utwórz przykładowy plik i sprawdź.

Podpowiem, że w linii 10 masz pętlę nieskończoną (przez średnik na jej końcu), więc to nie ma prawa działać. Ponadto wczytujesz tylko liczby całkowite - jeśli w pliku będą dwie w jednej linii lub jakiś znak niż cyfra, Twój program zwróci błędny wynik. Poczytaj o znaku nowej linii i spróbuj przerobić ten program, by je zliczał (wczytując pojedyncze znaki do zmiennej typu char) albo wczytuj całe linie za pomocą funkcji getline.
robertos18
Użytkownik
Użytkownik
Posty: 423
Rejestracja: 6 paź 2014, o 20:03
Płeć: Mężczyzna
Lokalizacja: Torun
Podziękował: 127 razy
Pomógł: 2 razy

[C++] Plik do odczytu

Post autor: robertos18 »

Kod: Zaznacz cały

#include<iostream>
#include<fstream>

using namespace std;
int main()
{
    int zmienna = 0;
    string x;
    ifstream plik;
    plik.open( "C:Documents and SettingsAll UsersPulpitlinie.txt", ios::in );
    while( plik.good() );

    {
        getline(plik,x);
        zmienna++;
    }
    cout << zmienna;
    plik.close();
    return 0;
}
Wyswietla mi błedny wynik co tu jest zle zrobione?
bartek118
Użytkownik
Użytkownik
Posty: 5974
Rejestracja: 28 lut 2010, o 19:45
Płeć: Mężczyzna
Lokalizacja: Toruń
Podziękował: 15 razy
Pomógł: 1251 razy

[C++] Plik do odczytu

Post autor: bartek118 »

lukequaint pisze: Podpowiem, że w linii 10 masz pętlę nieskończoną (przez średnik na jej końcu), więc to nie ma prawa działać.
robertos18
Użytkownik
Użytkownik
Posty: 423
Rejestracja: 6 paź 2014, o 20:03
Płeć: Mężczyzna
Lokalizacja: Torun
Podziękował: 127 razy
Pomógł: 2 razy

[C++] Plik do odczytu

Post autor: robertos18 »

Oprocz tego jeszcze w sciezce dostepu zamiast "" powinno byc "/" ewentualnie "\"
spartanPAGE
Użytkownik
Użytkownik
Posty: 4
Rejestracja: 5 mar 2015, o 21:49
Płeć: Mężczyzna
Lokalizacja: Bielsko Biała

[C++] Plik do odczytu

Post autor: spartanPAGE »

Przekombinowane.

Kod: Zaznacz cały

ifstream file("fooPath"); 
count(
    istreambuf_iterator<char>(file), 
    istreambuf_iterator<char>(), 
    '\n'
);
robertos18
Użytkownik
Użytkownik
Posty: 423
Rejestracja: 6 paź 2014, o 20:03
Płeć: Mężczyzna
Lokalizacja: Torun
Podziękował: 127 razy
Pomógł: 2 razy

[C++] Plik do odczytu

Post autor: robertos18 »

to jest w c napisane?
bartek118
Użytkownik
Użytkownik
Posty: 5974
Rejestracja: 28 lut 2010, o 19:45
Płeć: Mężczyzna
Lokalizacja: Toruń
Podziękował: 15 razy
Pomógł: 1251 razy

[C++] Plik do odczytu

Post autor: bartek118 »

robertos18 pisze:to jest w c napisane?
Nie, w C++. Twój program także nie jest w C.
robertos18
Użytkownik
Użytkownik
Posty: 423
Rejestracja: 6 paź 2014, o 20:03
Płeć: Mężczyzna
Lokalizacja: Torun
Podziękował: 127 razy
Pomógł: 2 razy

[C++] Plik do odczytu

Post autor: robertos18 »

No ja wiem, ze mam w c++

Zadanie juz rozwiązałem dawno, tylko kolega uzył troche niezrozumialego dla mnie kodu i myslalem ze moze w c jest napisany -.-
ODPOWIEDZ