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

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

Войти
Регистрация
Восстановить пароль
 
programina
1914 / 599 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
#1

Не записывается бинарный файл:( - C++

25.03.2012, 17:21. Просмотров 744. Ответов 6
Метки нет (Все метки)

Здравствуйте. Программа читает четыре числа типа double в текстовом файле
0.0367450.4577840.0987860.658325
и записывает их в бинарный файл в той же последовательности. Почему в бинарном файле числа выглядят как в текстовом?
0.0367450.4577840.0987860.658325
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <stdio.h>
#include <stdlib.h>
 
int main()
{
        /// Переменные
    FILE *  file_txt;
    FILE *  file_bin;
    int     i;
    double  x[1024];
 
        /// Чтение из файла
    file_txt = fopen( "object.txt", "rt" );
    for ( i = 0; i < 4; i ++ ) { fread( &x[i], sizeof(double), 1, file_txt ); } // читаем 4 числа типа double
    fclose( file_txt );
 
        /// Запись в файл
    file_bin = fopen( "object.bin", "wb" );
    for ( i = 0; i < 4; i ++ ) { fwrite( &x[i], 1, sizeof(double), file_bin ); } // записываем 4 числа типа double
    fclose( file_bin );
 
        /// Выход
    system( "pause" );
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.03.2012, 17:21
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не записывается бинарный файл:( (C++):

Записать в бинарный файл массив объектов Student (бинарный файловый ввод/вывод) - C++
Здравствуйте. Стоит задача записать в бинарный файл массив объектов student: class student { string firstname,lastname, group; ...

Информация не записывается в файл - C++
#include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;conio.h&gt; #include &lt;string&gt; using namespace std; char Otvet; string Text;...

Результат не записывается в файл - C++
Здравствуйте. Столкнулся с такой проблемой: после выполнения цикла (условия), результат не записывается в файл. int main() { ...

Не записывается строка в файл - C++
Не записывается строка в файл в чем может быть причина ? fstream f(&quot;work_mem.txt&quot;, ios::in | ios::out);// ...

Результат не записывается в файл - C++
#include &quot;studide.h&quot; int main() { ofstream fout(&quot;cpp.txt&quot;); setlocale(LC_CTYPE, &quot;rus&quot;); cout &lt;&lt; &quot;Введите цифру:\n&quot;; string...

Записывается мусор в файл - C++
Здравствуйте, есть следующий код для вывода дефолтных значений в файл: #include &lt;iostream&gt; #include &lt;fstream&gt; using namespace...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
panicwassano
591 / 559 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
25.03.2012, 17:24 #2
ну так и читайте их из текстового файла, зачем там fread???
retmas
Жарю без масла
859 / 741 / 164
Регистрация: 13.01.2012
Сообщений: 1,694
25.03.2012, 17:35 #3
Цитата Сообщение от programina Посмотреть сообщение
Программа читает четыре числа типа double
Цитата Сообщение от programina Посмотреть сообщение
fread( &x[i], sizeof(double), 1, file_txt );
да ну? я вижу, что она читает некоторое колицество байт из файла. в котором, по-видимому, содержится набор символов(цифр). и то, что у вас
Цитата Сообщение от programina Посмотреть сообщение
double x[1024];
совсем не значит, что вы считываете в этот массив числа типа double, а не значения символов-цифр. вы просто копируете байты из 1го файла в другой

Добавлено через 5 минут
читайте так
C
1
for ( i = 0; i < 4; i ++ ) { fscanf(file_txt, "%f",  &x[i]); }
programina
1914 / 599 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
25.03.2012, 17:47  [ТС] #4
Не записывается бинарно
retmas
Жарю без масла
859 / 741 / 164
Регистрация: 13.01.2012
Сообщений: 1,694
25.03.2012, 17:59 #5
выйдете из танка и прочитайте, что вам писали
panicwassano
591 / 559 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
25.03.2012, 17:59 #6
ТС вылезай из танка, читать из текстового нужно не посредством FREAD!!!!!
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
 
int main()
{
    FILE* in, *out;
    in = fopen("in.txt", "rt");
    if (!in)
    {
        printf("error opening file!");
        return 1;
    }
 
#define N 4
    double arr[4];
    for (int i = 0; i < N; ++i)
    {
        fscanf(in, "%lf ", &arr[i]);
    }
    fclose(in);
 
    out = fopen("out.bin", "wb");
    if (!out)
    {
        printf("error opening OUT file");
    }
 
    for (int i = 0; i < N; ++i)
    {
        fwrite(&arr[i], 1, sizeof(double), out);
    }
    fclose(out);
 
    return 0;
}
programina
1914 / 599 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
25.03.2012, 18:18  [ТС] #7
C fscanf и впрям работает, вспомнила что ее я раньше использовала в одном проекте, как пришла к fread не понимаю, наверно по аналогии если fwrite - запись, то fread - чтение.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.03.2012, 18:18
Привет! Вот еще темы с ответами:

Структура не записывается в файл - C++
Всем привет. Пытаюсь, значит, организовать работу с файлом в C++. Надо записать в smallfile.dat небольшую структуру, содержащую в себе поля...

В файл записывается мусор - C++
Добрый вечер! Почему при записи в бинарный файл, в файл записывается мусор и соответственно читается из него тоже мусор? #define...

Не получается прочесть правильно текстовый файл в структуру а затем в бинарный файл - C++
Нужно просто прочесть файл в структуру данных а потом оттуда записать в бинарный файл Вот как выглядит текстовый файл: 11122 Mary...

Неправильно записывается символ в файл - C++
ПОМОГИТЕ КТО ЧЕМ МОЖЕТ!!! Зашифровал значит текст.Дальше его расшифровую.Расшифровал Получил ASCII код символа.Пишу что-то типа: int...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
25.03.2012, 18:18
Ответ Создать тему
Опции темы

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