lekcja 33 wczytywanie danych z pliku za pomocą operatora >>
Ostatnio zmodyfikowano 2015-12-19 00:38
Zdziszek Temat założony przez niniejszego użytkownika |
lekcja 33 wczytywanie danych z pliku za pomocą operatora >> » 2015-12-18 23:13:36 Witam, mam problem z zadaniem domowym w lekcji 33: Zadanie domowe Otwórz plik tekstowy, w którym będą znajdowały się tylko liczby całkowite, oddzielone od siebie spacjami. Następnie napisz program, który wczyta wszystkie liczby z pliku i wypisze sumę wszystkich liczb na standardowym wyjściu. #include<iostream> #include<stdio.h> #include<string> #include<conio.h> #include<math.h> #include<fstream> using namespace std;
bool wyswietl( string nazwa ) { fstream plik; plik.open( nazwa.c_str() ); if( !plik.good() ) return false; int a, b = 0; string wiersz; while( getline( plik, wiersz ) ) { int tab[ 100 ]; for( int i = 0; i < wiersz.length(); i++ ) { tab[ i ] = 0; } a = 1; for( int i = 0; i <= wiersz.length(); i++ ) { if( wiersz[ i ] == ' ' ) a++; } for( int i = 0; i < a; i++ ) { plik >> tab[ i ]; } for( int i = 0; i < a; i++ ) { b += tab[ i ]; } } cout << "Suma liczb w wierszu wynosi: " << b << endl; plik.close(); return true; }
int main() { if( !wyswietl( "cpp0x.txt" ) ) std::cout << "Nie udalo sie otworzyc pliku o podanej nazwie." << std::endl; cout << endl << endl << endl; system( "pause" ); return 0; }
Problem polega na tym, że program nie sumuje prawidłowo tych liczb. W pliku tekstowym mam: 3 5 2 7 53 6 35 3 2 5 7 3 63 4 3 65 3 5 A program wyświetla: Suma liczb w wierszu wynosi: 109 Mógłby mi ktoś powiedzieć, gdzie zrobiłem błąd? |
|
carlosmay |
» 2015-12-19 00:05:50 int temp; int suma = 0;
while( plik >> temp ) suma += temp;
Cała filozofia odczytania danych z tego pliku. |
|
Zdziszek Temat założony przez niniejszego użytkownika |
» 2015-12-19 00:38:41 Rozpisałem się w kodzie, a tu widzę dwa słowa wystarczyły:P Dzięki=] |
|
« 1 » |