[C++] Wczytywanie plik
Ostatnio zmodyfikowano 2014-05-09 13:55
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.
|
|
Raptiler |
» 2014-05-06 10:58:15 Zwykłą konstrukcja if/else w pętli. if( WczytanyString == "Gdansk" ) break; |
|
stryku |
» 2014-05-06 11:08:45 Jeżeli chodzi o to pierwsze to można tak do { wczytuj; wyswietlaj; } while( wczytanyString != "Gdańsk" );
to drugie np tak do { wczytuj; } while( wczytanyString != poczatkowyString );
wyswietlPoczatkowyString;
while( wczytanyString != koncowyString );
{ wyswietlaj; wczytuj; }
wyswietlKoncowyString;
|
|
Dhakkain Temat założony przez niniejszego użytkownika |
» 2014-05-06 18:14:49 string Odjazd, Przyjazd;
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 |
|
michal11 |
» 2014-05-06 22:06:37 while( !plik.eof() ) Dlatego wczytuje ci cały plik. |
|
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ć |
|
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(); |
|
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 if( strcmp( Odjazd.c_str(), wczytanyTxt.c_str() == 0 ) ) break;
twierdzi, że 2 IntelliSense: argument of type "bool" is incompatible with parameter of type "const char *" |
|
« 1 » 2 |