Praca domowa 35 lekcja zadanie 1 - pozycje.
Ostatnio zmodyfikowano 2016-10-13 18:52
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 #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; }
|
|
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ć ? |
|
« 1 » |