zadanie 35
Ostatnio zmodyfikowano 2014-08-13 15:55
snajperek130 Temat założony przez niniejszego użytkownika |
zadanie 35 » 2014-08-09 00:12:53 Mam problem z wczytaniem co trzeciej liczby w pliku. Jesli jest cyfr np. 6[1,2,3,4,5,6] to w tedy normalnie wypisuje mi 3,6, ale jak mam np 7 albo 8 cyfr to zawsze wypisuje mi dwa razy ostatnia liczbe. Powie ktos, dlaczego? #include<iostream> #include<fstream> #include<string> #include<cstdlib> using namespace std;
bool czyNapotkanoZnakNowegoWiersza( std::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 odczytaj( string zad ) { ifstream plik; char liczba; plik.open( zad.c_str() ); if( !plik.good() ) { return false; } cout << "No to jedziemy:" << endl; while( !plik.eof() ) { plik.seekg( 2, ios::cur ); plik >> liczba; cout << liczba << " "; if( czyNapotkanoZnakNowegoWiersza( plik ) ) { return true; } } return true; } int main() { if( !odczytaj( "zadanie.txt" ) ) cout << "Plik nie zostal otworzony, koniec!"; return 0; }
|
|
pekfos |
» 2014-08-12 11:08:55 Nie sprawdzasz, czy udało się wczytać liczbę. |
|
1aam2am1 |
» 2014-08-12 12:24:14 Czyta do znaku następnej linii (tak mi się wydaje) Edit. Do końca poprawnych znaków dla danego typu. |
|
pekfos |
» 2014-08-12 12:39:01 Czyta do znaku następnej linii (tak mi się wydaje) |
Nie. |
|
Jacob99 |
» 2014-08-12 14:22:37 plik >> liczba Czyta do znaku następnej linii (tak mi się wydaje) Edit. Do końca poprawnych znaków dla danego typu. |
Nie. Czyta do pierwszego białego znaku, lub błędu. |
|
1aam2am1 |
» 2014-08-12 14:29:40 Biały znak? |
|
Jacob99 |
» 2014-08-12 15:01:52 |
|
pekfos |
» 2014-08-12 15:01:56 |
|
« 1 » 2 |