Rozdział 34 , zadanie 2 . Pomoc
Ostatnio zmodyfikowano 2017-09-27 16:55
kundelko Temat założony przez niniejszego użytkownika |
Rozdział 34 , zadanie 2 . Pomoc » 2017-09-27 16:14:01 Witam prosił bym o sprawdzenie poprawności mojego zadania lub ewentualne wskazówki . Z góry dziękuje ;) zad. [trudne zadanie] Napisz program, który dla każdego wiersza w pliku: wczyta liczby i wypisze ich sumę w przypadku, gdy wszystkie liczby uda się wczytać; wypisze komunikat o błędnych danych, jeżeli wystąpi błąd podczas wczytywania liczb (komunikat ma wyświetlać numer wiersza, w którym wystąpił błąd). #include <iostream> #include<fstream>
using namespace std; bool czyNapotkanoZnakNowegoWiersza( ifstream & plik ) { char cZnak; for(;; ) { plik.clear(); cZnak = plik.peek(); if( plik.fail() || plik.bad() ) return false; if( !isspace( cZnak ) ) return false; plik.get( cZnak ); if( plik.fail() || plik.bad() ) return false; if( cZnak == '\n' ) return true; } }
int main() { int a = 0, b, licznik = 1; bool czyBlad = false; ifstream plik; plik.open( "C:\\Users\\Dominik\\Desktop\\t.txt" ); if( !plik.good() ) cout << "blad plike" << endl; while( !plik.eof() ) { while( !czyNapotkanoZnakNowegoWiersza( plik ) ) { if( plik.eof() ) break; plik >> b; if( plik.fail() ) { plik.clear(); plik.ignore(); czyBlad = true; } else { a = a + b; } } if( plik.fail() || czyBlad == true ) { cout << "blad w lini: " << licznik << endl; } else { if( plik.eof() ) break; cout << a << endl; } a = 0; licznik++; czyBlad = false; } plik.close(); return 0; }
|
|
pekfos |
» 2017-09-27 16:55:02 Jeśli działa poprawnie, to raczej jest zrobione poprawnie. |
|
« 1 » |