Войти

Показать полную графическую версию : Файлы и потоки


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

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




© OSzone.net 2001-2012