Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[C++]Obsługa plików.

Ostatnio zmodyfikowano 2014-05-14 20:49
Autor Wiadomość
Azaks
Temat założony przez niniejszego użytkownika
[C++]Obsługa plików.
» 2014-05-14 19:27:15
Chciałbym napisać prosty program wczytujący zawartość pliku tekstowego.

Tak wygląda mój kod:

C/C++
#include <iostream>
#include <string>
#include <fstream>
#include <cstdlib>
using namespace std;

int main()
{
    string linia;
    ifstream plik;
    plik.open( "tekst.txt" );
    if( plik.good() )
    { cout << "plik zostal poprawnie wczytany" << endl;
        while( !plik.eof() )
        {
            getline( plik, linia );
            cout << linia << endl;
        }
    }
    else
         cout << "plik zostal niepoprawnie wczytany" << endl;
   
    plik.close();
    return 0;
}
Działa , aczkolwiek zwraca mi coś takiego:
C/C++
Plik zostal poprawnie wczytany
88888888888888888888888888( i wiele wiecej tych osemek )
Mimo ,że plik ma taką zawartość:
C/C++
1 2 3 4 5
6
7
Co jest nie tak?
P-109968
Jacob99
» 2014-05-14 19:34:41
Nie wiem czemu daje ci złe wyniki. Ja wypróbowałem i działa dobrze.
P-109972
Monika90
» 2014-05-14 19:40:42
C/C++
while( !plik.eof() )
{
    getline( plik, linia );
    cout << linia << endl;
}
ta pętla jest błędna, nie pisz nigdy pętli postaci while (!plik.eof()) { }
P-109974
Jacob99
» 2014-05-14 19:44:21
Czemu ten zapis jest błędny?
P-109977
michal11
» 2014-05-14 19:48:35
Ponieważ taki zapis polega na operowaniu kursorem, a ifstream to strumień.
P-109978
Azaks
Temat założony przez niniejszego użytkownika
» 2014-05-14 19:50:15
Monika90 a jak powinno być poprawnie ? Obsługę plików dopiero co zaczynam. ;)
P-109979
michal11
» 2014-05-14 19:53:02
C/C++
while( plik >> string )
{
    cout << string << endl;
}
P-109983
Jacob99
» 2014-05-14 19:54:40
Jeżeli już to nie kursor tylko wskaźnik czytania. A poza tym eof() służy właśnie do "oznajmienia" nam, że plik się skończył, bo nie można dalej już czytać.
P-109984
« 1 » 2 3
  Strona 1 z 3 Następna strona