A non-professional solution :) :
class mybuffer: public basic_filebuf<char>
{
public:
char* Beg() { return gptr(); }
char* End() { return egptr(); }
};
int _tmain(int argc, _TCHAR* argv[])
{
std::ifstream file;
file.open(_T("d:\\test.txt"));
mybuffer* Buf = (mybuffer*) file.rdbuf();
Buf->sgetc();
char* pCharBeg = Buf->Beg();
char* pCharEnd = Buf->End();
reverse_iterator<char*> rIter(pCharEnd);
while (pCharBeg <= &(*rIter)) {
cout << *(rIter++);
}
file.close();
return getchar();
}