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

Lekcja35 - Metoda tellg() oraz seekg().

Ostatnio zmodyfikowano 2016-08-18 17:04
Autor Wiadomość
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 :

C/C++
#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.
P-150973
« 1 »
  Strona 1 z 1