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

Lekcja 4.34 - zadanie 1

Ostatnio zmodyfikowano 2016-08-20 01:42
Autor Wiadomość
jundymek
Temat założony przez niniejszego użytkownika
Lekcja 4.34 - zadanie 1
» 2016-08-20 00:32:54
Mam problem z zadaniem 1 z wymienionego tematu. Męczę się z tym cały dzień i niestety jestem daleki od rozwiązania... Na razie przekonwertowałem tekst, żeby otrzymać coś takiego: " 1 2 321 9 5 3". Nie mam pojęcia jak z takiego stringa zsumować liczby. Na razie nie skupiałem się na błędach przy odczycie pliku (trochę pewnie od złej strony podchodzę do zadania). Proszę o jakieś wskazówki. Czy droga, którą obrałem (wczytanie tekstu z pliku do stringa) jest właściwa. Czy da się w ten sposób w ogóle to rozwiązać? Poniżej kod:
C/C++
#include <iostream>
#include <fstream>
#include <string>

using namespace std;


string konwertuj( string dane ) {
    cout << dane << endl;
    int dlugosc = dane.length();
    size_t nieliczby = dane.find_first_not_of( "0123456789 " );
    while( nieliczby != string::npos )
    {
        dane.replace( nieliczby, 1, " " );
        nieliczby = dane.find_first_not_of( "0123456789 ", nieliczby );
    }
    cout << dane << endl;
    size_t spacje = dane.find( "  " );
    while( spacje != string::npos )
    {
        dane.erase( spacje, 1 );
        spacje = dane.find( "  ", spacje );
    }
    cout << dane;
   
}

string wczytaj_plik( string dane ) {
   
    ifstream plik;
    plik.open( dane.c_str() );
    string linia;
    getline( plik, linia );
    return linia;
}

int main() {
    string linia;
    string dane = "liczby.txt";
    konwertuj( wczytaj_plik( dane ) );
    return 0;
}
P-150998
carlosmay
» 2016-08-20 01:42:42
Zdecydowanie skomplikowałeś sobie życie. Wystarczy do tego zadania proste wczytywanie danych z pliku i sumowanie wartości.
C/C++
{
    ifstream fin( "tekst.txt" );
    int sum { };
    int value { };
    if( fin.is_open() ) {
        do {
            fin >> value;
            if( !fin && !fin.eof() ) {
                fin.clear();
                fin.get();
            }
            else {
                cout << value << ' ';
                sum += value;
            }
        } while( !fin.eof() );
       
        cout << "\nsuma: " << sum << '\n';
    }
    else {
        cerr << "Lipa\n";
    }
}
P-151000
« 1 »
  Strona 1 z 1