Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[C++] Rozdział 34 - Zadanie Domowe - błędne działanie programu.

Ostatnio zmodyfikowano 2016-07-15 17:49
Autor Wiadomość
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.
C/C++
#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;
}
P-149998
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ć.
P-149999
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.
P-150000
1 2 « 3 »
Poprzednia strona Strona 3 z 3