Rozdział 34 - Zadnie 2 [trudne]
Ostatnio zmodyfikowano 2014-06-20 12:58
Webmast-er Temat założony przez niniejszego użytkownika |
Rozdział 34 - Zadnie 2 [trudne] » 2014-06-20 12:58:43 Mam problem z programem, który pisze pod zadanie 2 z kursu C++ (Rozdział 34). Po skompilowaniu program wyświetla zapętlone "Bledne dane w wierszu nr 5!" (A w plik txt znajduje się 5 wierszy). Moim zdaniem program nie wyłapuje końca w zawartości pliku. #include <iostream> #include <fstream>
using namespace std;
bool czyNowyWiersz( ifstream & plik ) { char znak; while( true ) { plik.clear(); znak = plik.peek(); if( plik.fail() || plik.bad() ) { return false; } if( !isspace( znak ) ) { return false; } plik.get( znak ); if( plik.fail() || plik.bad() ) { return false; } if( znak == '\n' ) { return true; } } }
bool WczytywaniezPliku_zad2() { ifstream plik; plik.open( "tekst4.txt" ); if( plik.fail() ) { return false; } int wiersz = 0; bool blad; while( !plik.eof() ) { wiersz++; blad = false; int wczytana, suma = 0; while( !czyNowyWiersz( plik ) ) { plik >> wczytana; if( plik.good() ) { suma += wczytana; } else { cout << "Bledne dane w wierszu nr " << wiersz << "!" << endl; blad = true; plik.clear(); char znak; plik >> znak; } } if( blad == false ) { cout << suma << endl; } } plik.close(); return true; }
int main() { cout << "obsluga plikow 2" << endl << endl; if( !WczytywaniezPliku_zad2() ) { cout << "Nie mozna otworzyc pliku!" << endl; } return 0; }
|
|
« 1 » |