[Lekcja34] Pomijanie znaku char
Ostatnio zmodyfikowano 2014-12-28 13:30
legionista Temat założony przez niniejszego użytkownika |
[Lekcja34] Pomijanie znaku char » 2014-12-27 19:18:56 Witam, mógłby mi ktoś wytłumaczyć czemu taki zapis jest niepoprany, przerywa pętle break; ; gdy napotyka na znak. Jednak przy natrafieniu na znak zwraca true i na tym sie to kończy, czy nie można tego wykonać bez deklaracji chara ? 2 pytanie moja suma zapisana w ten sposób przy zmianie kodu (deklaracja char tak jak w rozdziale)zwraca dziwne wartości. Co robię źle? #include <string> #include <fstream> #include <iostream>
bool wczytajLiczbe( std::ifstream & plik, int & iLiczba, int & suma ) { plik.clear(); plik >> iLiczba; if( plik.bad() ) { std::cout << "Wystapil blad sprzetowy!" << std::endl; plik.close(); return false; } else if( plik.fail() ) { return false; } else std::cout << iLiczba << " "; suma += iLiczba; return true; }
bool odczytajPlik( std::string sNazwaPliku ) { std::ifstream plik; plik.open( sNazwaPliku.c_str() ); int suma = 0; if( !plik.good() ) { std::cout << "Nie udalo sie otworzyc pliku." << std::endl; return false; } while( !plik.eof() ) { int iLiczba; if( !wczytajLiczbe( plik, iLiczba, suma ) && plik.bad() ) return false; else break; std::cout << std::endl << " suma " << suma; } std::cout << std::endl << " suma " << suma; plik.close(); return true; }
int main() { if( odczytajPlik( "flagi.txt" ) ) return 0; }
|
|
darko202 |
» 2014-12-27 23:53:51 1. while( !plik.eof() ) { int iLiczba; // to jest błąd .... }
2. zakładam że o to pytasz if( !wczytajLiczbe( plik, iLiczba, suma ) && plik.bad() ) return false; //wczytanie liczby nie powiodło się z powodu błędu sprzętowego wczytaleś znak i mamy np !false && true == true stąd dalej return ....
technika debagowanie stanu zmiennych Ci się kłania bez tego tracisz czas, nerwy, itp... |
|
legionista Temat założony przez niniejszego użytkownika |
» 2014-12-28 13:23:21 Faktycznie masz racje, przez ostatnie rozdziały bardzo trudno przechodzę, możesz polecić mi konkretny rozdział lub materiał dotyczący debagowania stanu zmiennych? Tym razem Google nie poratowało. |
|
DejaVu |
» 2014-12-28 13:30:30 Jeden temat = jeden problem. |
|
« 1 » |