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

[C++] Wczytywanie plik

Ostatnio zmodyfikowano 2014-05-09 13:55
Autor Wiadomość
Dhakkain
Temat założony przez niniejszego użytkownika
[C++] Wczytywanie plik
» 2014-05-06 10:54:24
Mam pytanie odnośnie wczytywanie pliku. Czy jest możliwość wczytywania z pliku textowego linijkę do danego słowa? Tzn kiedy mam plik txt który wygląda np tak:

Wrocław
Warszawa
Gdańsk
Katowice
Kraków
Cośtam
coś
HA

czy można wczytać ten plik do momentu który zada użytkownik, (użytkownik programu będzie poproszony o wpisanie textu). Po wpisaniu np "Gdańsk" plik zostanie wyświetlony w ten sposób:

Wrocław
Warszawa
Gdańsk

reszta zostanie pominięta. Jakiej funkcje użyć?

Czy jest jeszcze inna możliwość wczytywania pliku, kiedy użytkownik podaje Początek (np Gdańsk) i koniec (np HA) wyświetlony plik wyglądałby tak:

Gdańsk
Katowice
Kraków
Cośtam
coś
HA

Będę bardzo wdzięczny za pomoc.
Pozdrawiam.
P-109354
Raptiler
» 2014-05-06 10:58:15
Zwykłą konstrukcja if/else w pętli.
if( WczytanyString == "Gdansk" ) break;
P-109355
stryku
» 2014-05-06 11:08:45
Jeżeli chodzi o to pierwsze to można tak
C/C++
do
{
    wczytuj;
    wyswietlaj;
} while( wczytanyString != "Gdańsk" );


to drugie np tak
C/C++
do
{
    wczytuj;
} while( wczytanyString != poczatkowyString );

wyswietlPoczatkowyString;

while( wczytanyString != koncowyString );

{
    wyswietlaj;
    wczytuj;
}

wyswietlKoncowyString;
P-109356
Dhakkain
Temat założony przez niniejszego użytkownika
» 2014-05-06 18:14:49
C/C++
string Odjazd, Przyjazd;

/// cout << "Podaj miasto z: ";
cin >> Odjazd;


ifstream plik;
string wczytanyTxt;
plik.open( "Stacje.txt", ios::in );

if( plik.good() == true )
{
    cout << "\nWczytywanie dostępnych stacji" << endl;
   
    while( !plik.eof() )
    {
        getline( plik, wczytanyTxt );
        cout << wczytanyTxt << endl;
    }
   
    plik.close();
   
}
getchar();

moglibyście mi pomóc z tym kodem? Jak go zmienić pod ten który podaliście? Kombinuje już trochę i ciągle wczytuje mi cały plik.
Plik wygląda tak:
Poznań
Gdańsk
Kraków
Warszawa
Katowice
Zakopane
P-109378
michal11
» 2014-05-06 22:06:37
while( !plik.eof() )

Dlatego wczytuje ci cały plik.
P-109395
Dhakkain
Temat założony przez niniejszego użytkownika
» 2014-05-09 11:58:38
@michal11
niestety ale bez tego, wczytuje mi tylko pierwszy wiersz. Pętle które podano wcześniej też nie działają :< Mógłby ktoś na przykładzie tego mojego kodu na górze napisać jak to rzeczywiście ma działać? Albo wczytuje mi jedną pozycję albo cały skompilowany kod zaczyna świrować
P-109551
1aam2am1
» 2014-05-09 12:08:04
string Odjazd, Przyjazd;

/// cout << "Podaj miasto z: ";
cin >> Odjazd;


ifstream plik;
string wczytanyTxt;
plik.open( "Stacje.txt", ios::in );

if( plik.good() == true )
{
    cout << "\nWczytywanie dostępnych stacji" << endl;
   
    while( !plik.eof() )
    {
        getline( plik, wczytanyTxt );
        cout << wczytanyTxt << endl;
        if(strcmp(Odjazd.c_str(), wczytanyTxt.c_str() == 0)break; //wychodzi gdy ==
    }
   
    plik.close();
   
}
getchar();
P-109552
Dhakkain
Temat założony przez niniejszego użytkownika
» 2014-05-09 12:26:50
@1aam2am1
mój kompilator (koduje w visual 2012 ) ma problem z
C/C++
if( strcmp( Odjazd.c_str(), wczytanyTxt.c_str() == 0 ) ) break; //wychodzi gdy ==


twierdzi, że

2 IntelliSense: argument of type "bool" is incompatible with parameter of type "const char *"
P-109553
« 1 » 2
  Strona 1 z 2 Następna strona