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

[Rozdział 34.] - Pierwsze zadanie domowe.

Ostatnio zmodyfikowano 2014-02-14 12:17
Autor Wiadomość
dominik0294
Temat założony przez niniejszego użytkownika
[Rozdział 34.] - Pierwsze zadanie domowe.
» 2014-02-14 12:17:17
Po wielu kombinacjach nie mogę dojść do wniosku czym się właściwie różni plik.good() od !plik.fail(). Aczkolwiek gdy wpisałem plik.good() do warunku 'if' tam gdzie wypisuje zmienną 'a' nie odczytywało mi ostatniej liczby.

Pytanie: Odnośnie pierwszego zdania - "czym się właściwie różnie plik.good() od !plik.fail()"? (dane te same co w treści zadania)

C/C++
#include <iostream>
#include <fstream>
#include <string>
using namespace std;

bool wczytajPlik( string nPliku )
{
    ifstream plik;
    plik.open( nPliku.c_str() );
    if( !plik.good() )
         return false;
   
    int suma = 0;
    while( true )
    {
        int a;
        char b;
        plik >> a;
        if( !plik.fail() )
        {
            suma += a;
            cout << a << " ";
        }
        if( !plik.good() )
        {
            plik.clear();
            plik >> b;
        }
        if( plik.eof() )
             break;
       
    }
    cout << endl << "Suma wszystkich liczb z pliku to: " << suma << endl;
    plik.close();
    return true;
}

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

//PS. Taka rada dla tych, którzy zmagają się z drugim zadaniem ([trudnym zadaniem]) - rysujcie sobie schematy blokowe :). Po kilku godzinach zmagań narysowałem sobie taki schemacik... 5 minut i program napisany ;) xD.
P-104629
« 1 »
  Strona 1 z 1