Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Файлы и потоки (http://forum.oszone.net/showthread.php?t=30506)

netmax 14-05-2003 06:54 208899

Есть два потока. Один ввода другой вывода. Оба связаны с одним и темже фалом.
почему-то не пишуться/не читаются числа с плавающей запятой.
вот пример

ofstream temp1;
ifstream temp2;
double val;
int i;

temp1.open("1.tst");
for(i = 0; i < 61; i++) {
  val = i + 0.71;
  temp1.write((char*)&val, sizeof(val));
}
temp1.close();

temp2.open("1.tst");
for (i = 0; i < 61; i++) {
  temp2.read((char*)&val, sizeof(val));
  cout << val << endl;
}
temp2.close();

причем что особо интересно. первые 4 числа и пишуться и читаются нормально а потом начинается ...
Если писать целые числа все OK.
В чем дело?

Megabizon 14-05-2003 09:37 208900

Цитата:

temp1.write((char*)&val, sizeof(val));
char представляется как int - целое, но не дробное.
Перегоняй float в строку, потом в char.


Время: 02:11.

Время: 02:11.
© OSzone.net 2001-