Lekcja35 - Metoda tellg() oraz seekg().
Ostatnio zmodyfikowano 2016-08-18 17:04
krzyslov Temat założony przez niniejszego użytkownika |
Lekcja35 - Metoda tellg() oraz seekg(). » 2016-08-18 17:04:57 Witam, ostatnio aby utrwalić sobie wiedzę o metodzie seekg() oraz tellg() napisałem taki oto program : #include <iostream> #include <conio.h> #include <fstream> using namespace std;
bool czy_znak( char znak ) { if( znak == '.' or znak == ',' ) return true; else return false; }
int main() { char znak; fstream plik; int ile = 0; plik.open( "C:/Pliki(tekstowe inn.)/Plik_odczytu_lekcja103.txt" ); if( !plik.good() ) { cout << ">Odmowa dostepu" << endl; getch(); return 0; } cout << "Pozycje znakow interpunkcyjnych :"; do { plik >> znak; if( czy_znak( znak ) == true ) { cout << plik.tellg() << " "; ile++; } } while( !plik.eof() ); cout << endl; cout << "Ilosc znakow interpunkcyjnych : " << ile << endl; cout << "Tresc:" << endl; cout << "---------------------------" << endl; plik.clear(); plik.seekg( 0 ); do { plik >> noskipws >> znak; cout << znak; } while( !plik.eof() ); plik.close(); getch(); return 0; }
No i problem jest następujący: Program podaje mi pozycję znaku interpunkcyjnego, ale jest ona za duża! Za pomocą metody tellg() zobaczyłem jak program numeruje te znaki... 0 4 5 6 7 8 9 10... // No więc tak to leci. Czy ktoś wie o co chodzi będę wdzięczny z pomoc. |
|
« 1 » |