Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > istream::readsome()


Автор: asdf 7.5.2006, 20:34
Код
string File::FileToStr(const char *a)
{
  string res;
  ifstream if1(a);
  char read[MAX_SIZE];
  int bytesRead;
  //int foo=if1.tellg();
  while ( (bytesRead=if1.readsome(read, sizeof read-1))>0 ) {
    read[bytesRead]='\0';
    res+=read;
  }
  if1.close();
  return res;
}

работало на Билдере 6-ом, на Visual C++ , если не ошибаюсь 2003-й студии (версия - 7.1.3088) - не идёт..

if1.fail() с конструктора равен false .
if1.tellg() равен 0
и if1.readsome() с первого захода выдаёт 0 не изменяя массив read.


что как исправить?  

 smile 
 

Автор: Любитель 7.5.2006, 23:24
Во-первых, почему readsome, а не read?
Во-вторых, проверь на is_open. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)