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

rozdzial 33 - problem z zadaniem

Ostatnio zmodyfikowano 2015-09-13 01:38
Autor Wiadomość
progx100
Temat założony przez niniejszego użytkownika
rozdzial 33 - problem z zadaniem
» 2015-09-12 23:08:07
Witam
mam problem, gdyż z pliku tekstowego nie czyta mi ostatniego wersa i tak sie dzieje za kazdym razem czy dodam nowy wers  do pliku czy odejmę, program wylicza mi sumę liczb ze wszyskich wersów prócz ostatniego oto kod:

#include <fstream>
#include <iostream>
#include <string>

bool wczytajPlik( std::string nazwaPliku )
{
    std::ifstream plik;
    plik.open( nazwaPliku.c_str() );
    if( !plik.good() )
         return false;
    int suma = 0;
    while( true )
    {
        int a;
        int b;
        plik >> a >> b;
        if( plik.good() )
             {
                 suma+=a+b;
             }
        else
             break;

    }
    std::cout<<"suma "<<suma<<std::endl;
    return true;
}

int main()
{
    if( !wczytajPlik( "C:/vv.txt" ) )
         std::cout << "Nie udalo sie otworzyc pliku!" << std::endl;

    return 0;
}
P-137460
carlosmay
» 2015-09-13 00:00:22
Nie ta kolejność:
C/C++
plik >> a >> b;
if( plik.good() )
{
    suma += a + b;
}
Wpierw wczytujesz liczby, a później wykluczasz ostatni cykl dodawania, bo po wczytaniu masz koniec pliku, więc mimo pobrania
liczb do zmiennych to if pomija dodawanie.
P-137465
progx100
Temat założony przez niniejszego użytkownika
» 2015-09-13 01:19:01
dobra już rozwiązałem problem tak:

#include <fstream>
#include <iostream>
#include <string>

bool wczytajPlik( std::string nazwaPliku )
{
    std::ifstream plik;
    plik.open( nazwaPliku.c_str() );
    if( !plik.good() )
         return false;
    int suma = 0;
    int a;
    int b;
    while( plik >> a >> b )
    {
    suma+=a+b;
    }
    std::cout<<"suma "<<suma<<std::endl;
    return true;
}

int main()
{
    if( !wczytajPlik( "C:/vv.txt" ) )
         std::cout << "Nie udalo sie otworzyc pliku!" << std::endl;

    return 0;
}
P-137467
carlosmay
» 2015-09-13 01:35:32
Czemu wczytujesz dane parami, a jak w pliku będzie nieparzysta ilość liczb.
P-137468
progx100
Temat założony przez niniejszego użytkownika
» 2015-09-13 01:38:34
poprawie, najwazniejszy problem już rozwiązany
P-137469
« 1 »
  Strona 1 z 1