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

[Rozdział 33] Wczytanie z pliku

Ostatnio zmodyfikowano 2015-01-23 11:17
Autor Wiadomość
luuuzik
Temat założony przez niniejszego użytkownika
[Rozdział 33] Wczytanie z pliku
» 2015-01-22 23:20:49
Witam, napisałem program wczytujący oraz sumujący dane z pliku, jednakże mam dziwny problem:
Mój plik nazywa się sumy.txt i mam tam liczby:
100 100
100 100
100 100
21 50
Program podlicza mi wszystko poza ostatnią liczbą tj. 50 i wyrzuca wynik: 621 za każdym razem. Próbowałem zwiększyć ilość liczb w pliku i zauważyłem że zawsze nie podlicza ostatniej liczby, jakakolwiek ona by nie była. Oto kod:
C/C++
#include <fstream>
#include <iostream>
#include <string>
using namespace std;

bool wczytajPlik( string nazwaPliku )
{
    ifstream plik;
    plik.open( nazwaPliku.c_str() );
    if( !plik.good() )
         return false;
   
    int suma = 0;
    int a = 0;
    while( true ) //pętla nieskończona
    {
       
        plik >> a;
        if( plik.good() )
        {
            suma = suma + a;
        }
       
        else
             break; //zakończ wczytywanie danych - wystąpił jakiś błąd (np. nie ma więcej danych w pliku)
       
        cout << "Suma wynosi: " << suma << endl;
    } //while
    return true;
}

int main()
{
    if( !wczytajPlik( "sumy.txt" ) )
         cout << "Nie udalo sie otworzyc pliku!" << endl;
   
    return 0;
}


Jaki błąd popełniłem?
P-125408
Winner_Of_Death
» 2015-01-23 00:29:07
W złej kolejności wykonujesz operacje w pętli.
C/C++
if( !plik.good() )
     break;

plik >> a;
suma = suma + a;
 
P-125414
luuuzik
Temat założony przez niniejszego użytkownika
» 2015-01-23 11:17:15
Dzięki, wszystko działa :D
P-125418
« 1 »
  Strona 1 z 1