Odczyt danych z pliku za pomoca getline
Ostatnio zmodyfikowano 2016-03-29 09:02
Keicam Temat założony przez niniejszego użytkownika |
Odczyt danych z pliku za pomoca getline » 2016-03-28 21:43:28 Witam, Przy pisaniu programu napotkałem pewną przeszkodę. Chodzi o to, że gdy próbuję odczytać linijkę tekstu z pliku tekstowego, nie wyświetla się on. Tu jest kod: #include <iostream> #include <conio.h> #include <windows.h> #include <string> #include <fstream> #include <cstdlib>
using namespace std;
int main() { cout << "Wczytuje..." << endl; fstream plik; plik.open( "Quiz.txt", ios::in ); int nr_lini = 1, p, o; string linia; if( plik.good() == false ) { system( "cls" ); cout << "Plik nie istnieje! Upewnij sie, ze znajduje sie w folderze z aplikacja"; Sleep( 3000 ); exit( 0 ); } if( nr_lini == 1 ) { plik >> p; nr_lini++; } if( nr_lini == 2 ) { plik >> o; nr_lini++; } if( nr_lini == 3 ) { getline( plik, linia ); nr_lini++; } plik.close(); cout << linia << endl; cout << p << " " << o << " " << nr_lini; return 0; } W przypadku linii 1. i 2. gdzie nie jest użyty getline, wszystko działa poprawnie. Wczytuję...
1 8 4 Chcę, aby program pobrał całą linię 3. oraz pózniej ją wyświetlił na ekranie, co się niestety nie dzieje. Czy gdzieś jest błąd w kodzie? Z góry dziękuję za odpowiedź |
|
michal11 |
» 2016-03-28 22:27:08 Standardowy błąd, dodaj czyszczenie bufora przed getline. |
|
Keicam Temat założony przez niniejszego użytkownika |
» 2016-03-28 23:04:32 Czyli co dokładnie musiałbym wpisać? |
|
michal11 |
» 2016-03-29 00:18:22 |
|
Keicam Temat założony przez niniejszego użytkownika |
» 2016-03-29 09:02:24 Dzięki wielkie za pomoc EDIT: Niestety ale wciąż nie działa, dałem przed getline cin.sync(); jednak wciąż jest tak samo. Kolejny edit: Już nieważne, dałem w ifie plik.ignore(); i działa. |
|
« 1 » |