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

Odczyt danych z pliku za pomoca getline

Ostatnio zmodyfikowano 2016-03-29 09:02
Autor Wiadomość
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:
C/C++
#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ź
P-146668
michal11
» 2016-03-28 22:27:08
Standardowy błąd, dodaj czyszczenie bufora przed getline.
P-146670
Keicam
Temat założony przez niniejszego użytkownika
» 2016-03-28 23:04:32
Czyli co dokładnie musiałbym wpisać?
P-146675
michal11
» 2016-03-29 00:18:22
Ehh
Frazy, które należy wpisać w wyszukiwarkę google:
P-146681
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.
P-146694
« 1 »
  Strona 1 z 1