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

Praca domowa 35 lekcja zadanie 1 - pozycje.

Ostatnio zmodyfikowano 2016-10-13 18:52
Autor Wiadomość
grego
Temat założony przez niniejszego użytkownika
Praca domowa 35 lekcja zadanie 1 - pozycje.
» 2016-10-12 18:21:41
1.Napisz program, który odczytuje co trzeci znak z pliku. Użyj do tego metod poznanych w niniejszym rozdziale. Przetestuj poprawność działania programu na bardzo krótkim pliku tekstowym, wypisując co trzeci odczytany znak na ekranie.

Program działa poprawnie ale mam pytanie dotyczące pozycji w argumentach seekg. Początkowo w programie pozycje wypisane przeze mnie były o jeden mniejsze co powodowało, że program wczytywał co drugą liczbę, a przecież pozycje numerowane są od 0.

Plik tekstowy - link
 https://www.easypaste.org/file/MhEJTPYO/Grego2.txt?lang=pl

C/C++
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
bool Wczytaj_Wypisz( string nazwaPliku )
{
    int i;
    ifstream plik;
    plik.open( nazwaPliku.c_str() );
    if( plik.good() )
         cout << "Wczytano" << endl;
    else
         return false;
   
    plik.seekg( 3 );
    while( !plik.eof() )
    {
        plik.clear();
        plik >> i;
        plik.seekg( 4, ios::cur );
        if( plik.bad() )
             return false;
       
        if( plik.fail() )
             break;
       
        cout << i << " ";
    }
    cout << endl;
    return true;
}

int main()
{
    if( !Wczytaj_Wypisz( "C:/Users/Grzech/Desktop/Grego2.txt" ) )
         cout << "Niewczytano pliku, badz wystapil blad" << endl;
    else
         cout << "Gratulacje odrobiles prace domowa " << endl;
   
    return 0;
}
P-152501
grego
Temat założony przez niniejszego użytkownika
» 2016-10-13 18:52:29
Trochę poeksperymentowałem z kodem i zauważyłem, że niektóre dane z pliku przyjmują aż dwie pozycje. Niestety odpowiedzi dlaczego się tak dzieje nie znalazłem.
Może ktoś mnie oświecić ?
P-152530
« 1 »
  Strona 1 z 1