Rozdział 33 Przykład w innej formie
Ostatnio zmodyfikowano 2017-04-20 23:01
shrvabl Temat założony przez niniejszego użytkownika |
Rozdział 33 Przykład w innej formie » 2017-04-20 01:20:01 Siemka, Zacząłem robić przykład po swojemu i nie rozumiem, dlaczego nie wczytuje mi pierwszej linijki. Zrobione pętlą do..while, wczytuje normalnie, zaś samą while pomija pierwszą linijkę. Dlaczego tak jest? Z góry dzięki za pomoc! Rozdział 33: Wczytywanie danych z pliku za pomocą operatora >>#include <iostream> #include <cstdlib> #include <string> #include <fstream>
using namespace std;
void dzialanie( int liczba1, int liczba2, string dzialanie ) { if( dzialanie == "dodac" ) cout << liczba1 << " + " << liczba2 << " = " << liczba1 + liczba2 << endl; else if( dzialanie == "odjac" ) cout << liczba1 << " - " << liczba2 << " = " << liczba1 - liczba2 << endl; else cout << "Brak dzialania: ' " << dzialanie << " '." << endl; }
int main() { fstream plik; plik.open( "xxx.txt", ios::in ); if( plik.good() == false ) { cout << "Nie udalo sie otworzyc pliku" << endl; exit( 0 ); } string wers, znak; int liczba1, liczba2; while( getline( plik, wers ) ) { plik >> liczba1 >> znak >> liczba2; dzialanie( liczba1, liczba2, znak ); } plik.close(); return 0; }
|
|
karambaHZP |
» 2017-04-20 06:34:49 while( getline( plik, wers ) ) { plik >> liczba1 >> znak >> liczba2; dzialanie( liczba1, liczba2, znak ); } |
Odczytujesz w jednej pętli po dwie linie, a wykonujesz działania na co drugiej. while( plik >> liczba1 >> znak >> liczba2 ) { dzialanie( liczba1, liczba2, znak ); } |
|
shrvabl Temat założony przez niniejszego użytkownika |
» 2017-04-20 22:07:14 I taki warunek też zwraca "false" jeśli linii nie uda się wczytać? |
|
karambaHZP |
» 2017-04-20 22:46:35 Sprawdź :] |
|
shrvabl Temat założony przez niniejszego użytkownika |
» 2017-04-20 23:01:06 Dzięki wielkie :) Zamykam temat :) |
|
« 1 » |