Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > чтение борландского long double


Автор: math64 9.4.2009, 14:00
В Borland C++ sizeof(long double) = 10, Visual C++ = 8. (в gcc =12?)
Как прочитать long double, записанный в Borland C++, с помощью Visual C++ или gcc ?

Автор: Alexeis 9.4.2009, 14:50
Нашел код нативной конвертации http://support.microsoft.com/kb/129209
Код

/* Compile options needed: none
*/ 

#include <stdio.h>

void main(void)
{
   FILE *inFile;
   char buffer[10];
   long double Newdbl;

   inFile = fopen("data","rb");
   fread(buffer, 10, 1, inFile);      // reads in 10-byte long double
   fclose(inFile);

   // This moves the contents of the buffer into the floating point
   // register, which then then takes care of the automatic convertion
   // back to a 8-byte long double

   _asm {
      fld TBYTE PTR buffer;
      fstp Newdbl;
   }
}


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