Lekcja[34] Zadanie domowe - problem z wczytywaniem kolejnych danych.
Ostatnio zmodyfikowano 2018-06-04 23:06
Sevet Temat założony przez niniejszego użytkownika |
Lekcja[34] Zadanie domowe - problem z wczytywaniem kolejnych danych. » 2018-06-04 22:54:23 Witam, Program ma pominąć błędne dane i odczytać wszystkie liczby i je zsumować. W poprzednim programie który pisałem, za każdym razem gdy wywoływało się przypisanie: ifstream plik; int x; plik >> x;
to pobierało mi z pliku kolejne wartości(nie pierwszą dostępną) a w programie poniżej gdy napotka na błąd nie radzi sobie. Ma ktoś pomysł czemu? #include <cstdlib> #include <fstream> #include <iostream>
using namespace std;
bool wczytajPlik( string adres, ifstream & p, int & suma ) { p.open( adres.c_str() ); if( !p.good() ) return false; int x = 0; do { p >> x; cout << p.good() << x << endl; if( p.eof() ) break; if( p.fail() ) { p.clear(); cout << p.fail() << p.good() << p.bad(); } suma += x; } while( true ); return true; }
int main() { int suma = 0; ifstream plik; plik.clear(); if( !wczytajPlik( "D:/a/tekst.txt", plik, suma ) ) cout << "Nie udało się wczytać pliku"; cout << suma; return 0; }
Dane wejsciowe w pliku *.txt: 666 a 1 2 321b9 ac.de ef#@g 5 #3 |
|
pekfos |
» 2018-06-04 23:06:54 A gdzie te pomijanie błędnych danych? clear() tego nie robi. |
|
« 1 » |