Hejka mam problem maly. mam kod programu i musze go zmienic na inny troszke szukam pomocy?

<code>

#include <iostream>
#include <fstream>
using namespace std;

int main(int argc, char** argv)
{ char znak;
long int k;
ifstream ifs ("dane.we");
if (!ifs)
{cerr<<"Nieudane otwarcie pliku do odczytu"<<endl;
getchar();
return 1;
}

ifs.seekg(-1,ios::end);
do{
if ((znak = ifs.get())!=EOF) cout<<znak;
ifs.seekg(-2,ios::cur);
k=ifs.tellg();
}while (k!=-1);

ifs.close();
getchar();
return 0;
}

<\code>


a musze w nim zmienic takie cos jak: ma z pliku dane.we wypisac tekst od konca, wyswietlic zawartosc od momentu pojawienia sie pierwszej cyfry. ustawic plik na poczatku, znalezc w pliku 1 cyfre,no i wypisywac tekst od momentu napotkania 1 cyfry. wiem ze tu trzema zmienic te curr na end chyba . kurcze nie wiem jak to zmienic potzrebuje tego na wczoraj :/ !!!!!!!!! PILNE

1

Odpowiedzi

Najlepsza Odpowiedź!
2010-04-11T15:16:04+02:00
#include <iostream>
#include <fstream>
using namespace std;

int main() //nie obsługujesz paramterów więc je usunąłem
{
char znak;
long int k;
long int dlugosc;
ifstream ifs ("dane.we");
if (!ifs.is_open()) //jesli strumien nie jest otwarty
{
cerr<<"Nieudane otwarcie pliku do odczytu"<<endl;
getchar();
return 1;
}

ifs.seekg(-1,ios::end);
dlugosc=ifs.tellg();
dlugosc++;
while(!isdigit(znak) && k)
{
ifs.get(znak);
ifs.seekg(-2,ios::cur);
k=ifs.tellg();
}
if(isdigit(znak))
for(long int i=k+2;i<dlugosc;i++)
{
ifs.get(znak);
cout<<znak<<flush;
}
ifs.close();
getchar();
return 0;
}