[C++] Rozdział 34 - Zadanie Domowe - błędne działanie programu.
Ostatnio zmodyfikowano 2016-07-15 17:49
mateczek |
» 2016-07-15 17:25:54 trzeba usunąć przyczynę błędu (literę w pliku) a nie jego znaczniki !!! Czytaj stringami i sprawdzaj stringa czy jest liczbą. Jeśli potwierdzisz liczbę ją konwersji. #include <iostream>
#include <fstream> using namespace std;
int main() { ifstream plik( "dane.txt" ); string liczbaStr; int liczba, suma = 0; while( plik >> liczbaStr ) { try { liczba = stoi( liczbaStr ); } catch(...) { cout << liczbaStr << " to nie jest liczba" << endl; continue; } suma += liczba; } cout << "suma liczb wynosi: " << suma << endl; }
|
|
Szymon2727 |
-.- » 2016-07-15 17:34:50 Ja pierdziele kubaki przecież Ci napisałem, że wczytuje do końca liczby czyli do czasu, aż napotka coś innego niż liczba. A Ty się pytasz czemu jak nagle pojawi się jakaś literka to przestaje wczytywać.
Carlosmay to nie Twoja wina, że napisałeś liczba z małej litery, jakby przeanalizował kod to, by faktycznie zrozumiał, ale od kopiowania i wklejania się niewiele nauczy, ja też tak kiedyś miałem, że wolałem się wyuczyć jakiegoś kodu i to robi tak i tak, podczas gdy wystarczyło przeczytać tekst ze zrozumieniem, połączyć pewne fakty i spróbować nawet przez 30 minut rozwiązać jakieś proste zadanie.
Z czegoś takie można się wiele nauczyć. |
|
marcolo2307 |
» 2016-07-15 17:49:31 [a href="http://cpp0x.pl/kursy/Kurs-C++/Poziom-4/Wczytywanie-zawartosci-pliku-a-kontrola-bledow/485" name="Napisałem Ci już wcześniej, żebyś przeczytał rozdziały o plikach. Metoda ifstream::clear()." Wystarczy zapętlić tamten przykład, najlepiej metodą carlosmay'a. |
|
1 2 « 3 » |