Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Darland
0 / 0 / 0
Регистрация: 10.11.2008
Сообщений: 13
#1

Как сохранить плавающую точку? - C++

10.11.2008, 19:27. Просмотров 707. Ответов 4
Метки нет (Все метки)

Страшная проблема!

Turbo С 3.0

Есть переменная типа double, как сохранить ее в файл открытый для записи в бинарном режиме, в том виде как она лежит в памяти? То есть, чтобы в файле она заняла положенные ей 8 байт. Или говоря на BASICе:

DIM a AS DOUBLE

OPEN 1.bin FOR BINARY AS #1

PUT #1,,a

Причем если а типа float и a=1.157840e-7 то на диске должно получиться 00 00 F8 33.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.11.2008, 19:27     Как сохранить плавающую точку?
Посмотрите здесь:

C++ Как создать программу, и сохранить её как файл
C++ Как поменять точку на запятую в Visual C++ 6?
C++ Определить точку плоскости как класс
Как нарисовать точку на экране поверх всех окон? C++
C++ Найти точку D, симметричную точку A относительно стороны BC.
C++ точку нужно отобразить в виде пикселя. как это сделать
Как вернуть значение нескольких переменных в точку вызова функции C++
Как в двумерном массиве вычислить центральную точку? C++
C++ Как сохранить контейнеры STL в файл. И как потом их прочитать из файла
C++ В введенной строке заменить каждую запятую и точку на точку с запятой
C++ Как сохранить значение?
Как построить точку в проекции Гаусса-Крюгера C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ManiaK
Сообщений: n/a
11.11.2008, 16:51     Как сохранить плавающую точку? #2
Попробуй создать строку размером (в байтах) с double (8). С помощью memcpy скопируй содержимое переменной в строку.
Удачи!
palva
2460 / 1682 / 216
Регистрация: 08.06.2007
Сообщений: 6,643
Записей в блоге: 4
12.11.2008, 11:29     Как сохранить плавающую точку? #3
Сильно зависит от того, какие средства вывода вы используете. Если не выходить за рамки стандарта C++, то возможна такая программа:
Код
#include <fstream.h>
int main() {
  float a = 1.157840e-7;
  // тут произошло усечение double-константы
  ofstream dat('test.dat', ios::binary);
  char *p = (char *) &a;
  dat.put(*p++);
  dat.put(*p++);
  dat.put(*p++);
  dat.put(*p++);
  // программа выводит в файл ED A4 F8 33
  return 0;
}
palva
2460 / 1682 / 216
Регистрация: 08.06.2007
Сообщений: 6,643
Записей в блоге: 4
12.11.2008, 11:33     Как сохранить плавающую точку? #4
Извините, данная программа работает, но файл всё-таки положено закрывать.
Код
  dat.close();
Darland
0 / 0 / 0
Регистрация: 10.11.2008
Сообщений: 13
13.11.2008, 16:24  [ТС]     Как сохранить плавающую точку? #5
Огромное вам спасибо! Попробую оба варианта.
Yandex
Объявления
13.11.2008, 16:24     Как сохранить плавающую точку?
Ответ Создать тему
Опции темы

Текущее время: 04:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru