poziom 4 lekcja 34 zadanie domowe [trudne zadanie]
Ostatnio zmodyfikowano 2017-11-11 19:40
Corvette653 Temat założony przez niniejszego użytkownika |
poziom 4 lekcja 34 zadanie domowe [trudne zadanie] » 2017-11-10 20:18:07 Witam ponownie :) tym razem mam nadzieje pójdzie szybciej. Oto kod: int main() { ifstream plik; int i = 0; int cyfra; int suma = 0; char znak; plik.open( "4.txt" ); while( !plik.eof() ) { i++; while( !czyNapotkanoZnakNowegoWiersza( plik ) ) { plik >> cyfra; if( !plik.good() ) { plik.clear(); plik >> znak; cout << "Bledne dane w wierszu nr " << i << "!" << endl; } suma += cyfra; } cout << suma << endl; } plik.close(); return 0; }
reszta jest na stronie wszystko działa jednak napis bledne dane w wierszu 5 wypisuje się w nieskonczonosc a powinien tylko raz (zawsze to samo :) # poprzednie rozwiązałem dziekuje za pomoc ) proszę o szybką odpowiedź ponieważ śpieszę się na mecz :) |
|
pekfos |
» 2017-11-10 20:36:03 Twoja pętla while(!czyNapotkanoZnakNowegoWiersza(plik)) nie uwzględnia przypadku, gdy plik się kończy. Może tam nie powinno być tej pętli..? |
|
Corvette653 Temat założony przez niniejszego użytkownika |
jak zwykle zagadkowy :) » 2017-11-10 20:43:10 zamiast tego zrobie if ( plik.eof() ) brek; powinno być :) |
|
Corvette653 Temat założony przez niniejszego użytkownika |
wyszło mi takie dziwne coś :) » 2017-11-10 20:50:43 plik.open( "4.txt" ); while( !plik.eof() ) { i++; while( !czyNapotkano( plik ) ) { if( plik.eof() ) break; plik >> cyfra; if( !plik.good() ) { plik.clear(); plik >> znak; cout << "Bledne dane w wierszu nr " << i << "!" << endl; suma = 0; } else { suma += cyfra; } } if( !suma == 0 ) { cout << suma << endl; } suma = 0; } plik.close();
jednak nadal dwa razy wypisuje mi 5 oraz bledne dane w wierszu 5! mogę to zrobić jednak trzeba mi coś takiego: while ( ! )// następnym znakiem nie jest liczba, isspace oznacza znak biały, a liczbę czym można oznaczyć? { plik >> znak } ( będę dalej pisać jutro dobranoc i wesołego meczu :) ) |
|
Corvette653 Temat założony przez niniejszego użytkownika |
ktoś wie jak to można oznaczyć? » 2017-11-11 19:05:51 while ( !(następnym znakiem jest liczba) ) jak to można napisać?? |
|
pekfos |
» 2017-11-11 19:07:24 while ( !(liczba) ) jak to można napisać?? |
Można to napisać bez nawiasu. Nie potrzeba tam tyle nawiasów. isspace oznacza znak biały, a liczbę czym można oznaczyć? |
W tym zdaniu masz wszystko czego potrzeba, by znaleźć odpowiednią funkcję w 10 sekund w Google. Ale lepiej zapytać na forum i czekać prawie 24h na odpowiedź, jak człowiek inteligentny. http://www.cplusplus.com/reference/cctype/ |
|
Corvette653 Temat założony przez niniejszego użytkownika |
yyy tam ma być oznaczenie » 2017-11-11 19:14:20 to nie jest konkretna liczba chodzi mi o sprawdzenie czy to jest cyfra, jeśli nie to pętla się wykonuje dalej dlatego to ma wyglądać o tak : while ( !(zamiast tego nawiasu ma być oznaczenie liczby) ) // tak jak isspace oznacza znak biały to isnumber oznacza liczbę? ja wiem że nic nie wiem i dlatego się pytam a teraz już wiem że czasami faktycznie jestem idiotą masz racje :) |
|
jankowalski25 |
» 2017-11-11 19:19:06 |
|
« 1 » 2 |