Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Ultrator
14 / 10 / 1
Регистрация: 28.04.2009
Сообщений: 219
1

double в файл и обратно (язык c).

07.05.2011, 16:22. Просмотров 481. Ответов 4
Метки нет (Все метки)

Добрый день.

Подскажите, плз, как это сделать проще всего.

(fprintf (%f) к сожвлению не подходит - он пишет "отображение" числа посимвольно)

Хотелось, чтобы каждый double занимал бы 10 байт, то есть "1 в 1" грубо говоря, перенести.
И прочитать тоже, не знаю как (придумал, но это - коряво, наверно можно проще).

Наверняка, задачка типовая. Заранее благодарю.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.05.2011, 16:22
Ответы с готовыми решениями:

Double / float в строку и обратно
знаю есть готовые методы, мне просто интересен алгоритм, как это можно...

Преобразование TCHAR в double и обратно
Всем привет! Есть TCHAR массив, допустим со значением "12.5", как его можно...

Как преобразовать string в double и обратно?
нашел функцию atof но не хочет запускаться. сам начеркал функцию для перевода в...

Ошибки error C2296: -: недопустимо, левый операнд имеет тип "double (__cdecl *)(double,double,double
Думаю из-за polp #include<iostream> #include<cmath> #include<cstdlib>...

Ошибка: error LNK2001: unresolved external symbol "double __cdecl Akk(double,double,double)"
#include <iostream> #include <cmath> using namespace std; double Akk(double...

4
igorrr37
1867 / 1483 / 751
Регистрация: 21.12.2010
Сообщений: 2,473
Записей в блоге: 11
07.05.2011, 16:59 2
double вроде 8 байт занимает. Вот, в бинарном виде
C
1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
 
int main(){
    double d=12.25, res;
    FILE *f=fopen("1.dat","wb");
    fwrite(&d, sizeof(d), 1, f);
    if(!freopen("1.dat", "rb", f)){perror("Error"); exit(1);}
    fread(&res, sizeof(res), 1, f);
    printf("%f", res);
    fclose(f);
    return 0;
}
1
Ultrator
14 / 10 / 1
Регистрация: 28.04.2009
Сообщений: 219
07.05.2011, 17:15  [ТС] 3
Спасибо, ясно.

(оказывается, есть fwrite/fread.. )
0
ValeryLaptev
Эксперт С++
1050 / 829 / 60
Регистрация: 30.04.2011
Сообщений: 1,659
07.05.2011, 20:19 4
Цитата Сообщение от Ultrator Посмотреть сообщение
Спасибо, ясно.

(оказывается, есть fwrite/fread.. )
Вы не обратили внимание на одну важную строку:
C
1
FILE *f=fopen("1.dat","wb");
Это открывается БИНАРНЫЙ - НЕ текстовый - файл. Без этого fread|fwrite бесполезны.
1
Ultrator
14 / 10 / 1
Регистрация: 28.04.2009
Сообщений: 219
08.05.2011, 06:02  [ТС] 5
вот, точно (wb - немаловажный момент).
0
08.05.2011, 06:02
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.05.2011, 06:02

Потерял cpp файл, а ехе-шник остался. Можно как-то декомпилировать файл обратно?
Потерял cpp файл, а ехе-шник остался. Можно как-то декомпилировать файл обратно?

Почему мы пишем double x (double y)? а не через запятую double x,y
почему мы пишем double x (double y)? а не через запятую double x,y

Перенаправление потока в файл и обратно
проблема следующая. функция вызывается в меню, вводим файл, вводим строку, а...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru