Zadanie lekcja 33, .good()
Ostatnio zmodyfikowano 2014-08-25 08:58
przemko06 Temat założony przez niniejszego użytkownika |
Zadanie lekcja 33, .good() » 2014-08-24 23:08:22 Prosiłbym o wytłumaczenie dlaczego tak się dzieje.... Gdy kod programu z zadania 33 napiszę tak: #include <iostream> #include <fstream> #include <string>
using namespace std;
void wypisz( int & b ) { cout << "\n\nSuma: " << b; cout << "\n\n"; return; }
void odczyt( int a, int & b ) { cout << a << " "; b += a; return; }
bool wczytajPlik( string nazwaPliku, int & b ) { ifstream plik; plik.open( nazwaPliku.c_str() ); if( !plik.good() ) return false; while( true ) { int a; plik >> a; if( plik ) odczyt( a, b ); else break; } wypisz( b ); return true; }
int main() { int b = 0; if( !wczytajPlik( "liczby.txt", b ) ) cout << "Nie udalo sie otworzyc pliku" << endl; }
To program działa jak należy Chodzi mi tutaj o: if( plik ) a gdy napisze tak: #include <iostream> #include <fstream> #include <string>
using namespace std;
void wypisz( int & b ) { cout << "\n\nSuma: " << b; cout << "\n\n"; return; }
void odczyt( int a, int & b ) { cout << a << " "; b += a; return; }
bool wczytajPlik( string nazwaPliku, int & b ) { ifstream plik; plik.open( nazwaPliku.c_str() ); if( !plik.good() ) return false; while( true ) { int a; plik >> a; if( plik.good() ) odczyt( a, b ); else break; } wypisz( b ); return true; }
int main() { int b = 0; if( !wczytajPlik( "liczby.txt", b ) ) cout << "Nie udalo sie otworzyc pliku" << endl; }
Czyli: if( plik.good() ) To z pliku liczby.txt nie wczytuje mi zawsze ostatniej liczby. |
|
Monika90 |
» 2014-08-25 00:11:38 |
|
przemko06 Temat założony przez niniejszego użytkownika |
» 2014-08-25 08:58:14 ok dzięki wielkie :) |
|
« 1 » |