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

Pliczek tekstowy odczyt kilku wartości.

Ostatnio zmodyfikowano 2012-12-03 14:23
Autor Wiadomość
Sakatoku
Temat założony przez niniejszego użytkownika
Pliczek tekstowy odczyt kilku wartości.
» 2012-12-03 08:14:00
Mam problem nie wiem czemu ale wcześniej mi to działało lecz teraz już nie chce (inny komputer).
C/C++
fstream plik( "muzyka.txt", std::ios::in );
plik.seekg( + 0, std::ios_base::beg );
char dane[ 255 ];
plik.getline( dane, 27 );
cout << dane << endl;
char dane2[ 255 ];
plik.seekg( + 36, std::ios_base::beg );
plik.getline( dane2, 30 );
cout << dane2 << endl;
cin.get();
plik.close();
plik tekstowy to :

Nexus Game Revolution  HD Dubstep
Freakz - Sweet High Noises

Niestety pojawia mi się tylko napis "Nexus Game Revolution  HD"
Drugi napis to pusta linijka ...
Wcześniej mi to działało bez problemu.
Wczytuje mi sie tylko jeden napis jak chcę wczytać drugi z innego miejsca to jest pusty.

Co zwaliłem?
P-70275
Mrovqa
» 2012-12-03 09:34:59
Może masz na końcu pierwszej linii więcej białych znaków niż się spodziewasz? Jeśli tak, to
plik.seekg( + 36, std::ios_base::beg );
 ustawiłoby Cię na końcu pierwszej linii i wczytało to, co jeszcze w niej pozostało, czyli białe znaki. Możesz to zrobić to tak, że ustawiasz wskaźnik pliku na początku, po czym dwukrotnie wczytujesz po jednej linii do tej samej zmiennej.
P-70276
krzyk
» 2012-12-03 10:29:07
Bufor dla getline powinien być wystarczający do odczytanie całej linii,inaczej jest błąd.
C/C++
plik.getline( dane, 27 );
if( plik.fail() ) {
    cout << "ojojoj" << endl;
}
P-70277
Sakatoku
Temat założony przez niniejszego użytkownika
» 2012-12-03 11:02:43
Obojętnie czy dam bufor mniejszy większy nie wczytuje mi drugiej linii pomaga dopiero jak dam plik.clear();
Wtedy bez problemu wczytuje druga linie czy to całą czy u ciętą ...

Tylko że wcześniej nie musiałem tego używać grrrrr.

Help :P

P-70278
krzyk
» 2012-12-03 11:15:29
Prawde mówiąc niewiem co chcesz osiągnąć tymi seekg.
C/C++
fstream plik( "muzyka.txt", std::ios::in );
//plik.seekg(+ 0, std::ios_base::beg);
char dane[ 255 ];
plik.getline( dane, 255 );
if( plik.fail() ) {
    cout << "ojojoj" << endl;
}
cout << dane << endl;

char dane2[ 255 ];
//plik.seekg(+ 36, std::ios_base::beg);
plik.getline( dane2, 255 );
if( plik.fail() ) {
    cout << "ojojoj" << endl;
}
cout << dane2 << endl;

cin.get();
plik.close();
P-70279
Sakatoku
Temat założony przez niniejszego użytkownika
» 2012-12-03 14:23:22
Twój kod działa wiem o tym.
Ale tylko linijka po linijce :P
A z tym seekg chodziło mi o to że tych nazw piosenek mam więcej o wiele i chciałem sobie je wczytać w rożnej kolejności no ale jak skocze na inna linijkę to jej nie wczytuje chyba ze dam przeskokiem plik.clear() jeśli to poprawne to nic już nie pytam :P.
P-70282
« 1 »
  Strona 1 z 1