Pliczek tekstowy odczyt kilku wartości.
Ostatnio zmodyfikowano 2012-12-03 14:23
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). 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? |
|
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. |
|
krzyk |
» 2012-12-03 10:29:07 Bufor dla getline powinien być wystarczający do odczytanie całej linii,inaczej jest błąd.
plik.getline( dane, 27 ); if( plik.fail() ) { cout << "ojojoj" << endl; }
|
|
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
|
|
krzyk |
» 2012-12-03 11:15:29 Prawde mówiąc niewiem co chcesz osiągnąć tymi seekg.
fstream plik( "muzyka.txt", std::ios::in );
char dane[ 255 ]; plik.getline( dane, 255 ); if( plik.fail() ) { cout << "ojojoj" << endl; } cout << dane << endl;
char dane2[ 255 ];
plik.getline( dane2, 255 ); if( plik.fail() ) { cout << "ojojoj" << endl; } cout << dane2 << endl;
cin.get(); plik.close();
|
|
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. |
|
« 1 » |