Lekcja 4.34 - zadanie 1
Ostatnio zmodyfikowano 2016-08-20 01:42
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: #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; }
|
|
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. { 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"; } } |
|
« 1 » |