0 / 0 / 0
Регистрация: 26.02.2018
Сообщений: 13
1

Сконвертировать текстовый файл в бинарный, переписать только положительные числа в другой бинарный файл

16.04.2018, 18:27. Показов 2673. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Бинарные файлы!! Помогите пожалуйста. Дано бинарный файл ( данные сначала в текстовом, конвертирую в бинарный). Без использования другого файла переписать содержимое этого файла таким образом, чтобы сначала шли все положительные числа, а потом все отрицательные -- без изменений взаимного расположения элементов внутри каждой из этих двух групп. Полагаю,что все можно сделать с помощью if, но не знаю как это все осуществить без дополнительного файла, оставшись в этом.
Помогите пожалуйста с этим разобраться, очень сильно нужно
Oracle 11 SQL
1
:sorry::gsorry::gcray2::gconfusion:

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
#include "stdafx.h"
#include <iostream>
#include <conio.h>
 
using namespace std;
 
int main()
 
{
    FILE *binar, *fOut;
    int m = 1;
    double n;
    //int count1, count2;
    fopen_s(&binar, "binar.txt", "r");
    if (binar != NULL)
    {   
        fopen_s(&fOut, "res.dbl", "wb");
            if (fOut != NULL)
            {
                while (fscanf_s(binar, "%lf", &n) != EOF)
                    fwrite(&n, sizeof(double), 1, fOut);
                ;
            }
 
    }
 
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.04.2018, 18:27
Ответы с готовыми решениями:

Бинарный файл, как сконвертировать в текстовый
Здравствуйте, кто работал с бинарными файлами , не nодскажете какой нибудь гайд nо работе с ними...

Записать в бинарный файл произвольные натуральные числа. Переписать в другой файл те элементы, которые кратны К
Помогите, пожалуйста! есть задание: Записать в файл N произвольных натуральных чисел. Переписать...

Бинарный файл. Заменить все отрицательные числа нулями, а положительные удвоить
Компоненты бинарного файла – целые числа. Заменить все отрицательные числа нулями, а положительные...

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

7
296 / 227 / 102
Регистрация: 11.08.2016
Сообщений: 780
16.04.2018, 20:32 2
Таки это код на Си++. Это вам в соседний раздел.
0
0 / 0 / 0
Регистрация: 26.02.2018
Сообщений: 13
23.04.2018, 21:00  [ТС] 3
дан текстовый файл с вещественными числами. Я конвертирую его в бинарный, потом с уже существующего файла пытаюсь переписать только положительные числа файлы в другой бинарный файл. Но это почему-то не срабатывает. Объясните пожалуйста, в чем моя ошибка ???
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
37
38
39
40
41
42
43
44
#include <iostream>
#include <conio.h>
 
using namespace std;
 
int main()
 
{
    FILE *binar, *fOut;
    
    double n;
    //int count1, count2;
    fopen_s(&binar, "binar.txt", "r");
    if (binar != NULL)
    {
        fopen_s(&fOut, "res.dbl", "wb");
        if (fOut != NULL)
        {
            while (fscanf_s(binar, "%lf", &n) != EOF)
                fwrite(&n, sizeof(double), 1, fOut);
 
        }
 
    }
    
    //_fcloseall();
    FILE *fDop;
    double m;
    fopen_s(&fOut, "res.dbl", "rb");
    if (fOut != NULL)
    {
        fopen_s(&fDop, "dop.dbl", "wb");
        if (fDop != NULL)
        {
            while (fscanf_s (fOut, "%lf", &m) != EOF)
                if (m > 0)
                
                    fwrite(&m, sizeof(double), 1, fDop);
                
        }
    }
    _fcloseall();
    return 0;
}
0
0 / 0 / 0
Регистрация: 26.02.2018
Сообщений: 13
23.04.2018, 21:20  [ТС] 4
дан текстовый файл с вещественными числами. Я конвертирую его в бинарный, потом с уже существующего файла пытаюсь переписать только положительные числа файлы в другой бинарный файл. Но это почему-то не срабатывает. Объясните пожалуйста, в чем моя ошибка ???
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
37
38
39
40
41
42
43
44
#include <iostream>
#include <conio.h>
 
using namespace std;
 
int main()
 
{
    FILE *binar, *fOut;
    
    double n;
    //int count1, count2;
    fopen_s(&binar, "binar.txt", "r");
    if (binar != NULL)
    {
        fopen_s(&fOut, "res.dbl", "wb");
        if (fOut != NULL)
        {
            while (fscanf_s(binar, "%lf", &n) != EOF)
                fwrite(&n, sizeof(double), 1, fOut);
 
        }
 
    }
    
    //_fcloseall();
    FILE *fDop;
    double m;
    fopen_s(&fOut, "res.dbl", "rb");
    if (fOut != NULL)
    {
        fopen_s(&fDop, "dop.dbl", "wb");
        if (fDop != NULL)
        {
            while (fscanf_s (fOut, "%lf", &m) != EOF)
                if (m > 0)
                
                    fwrite(&m, sizeof(double), 1, fDop);
                
        }
    }
    _fcloseall();
    return 0;
}
0
Модератор
Эксперт С++
13407 / 10518 / 6283
Регистрация: 18.12.2011
Сообщений: 28,079
23.04.2018, 21:35 5
35 строка
Цитата Сообщение от darina2018 Посмотреть сообщение
while (fscanf_s (fOut, "%lf", &m) != EOF)
не имеете права читать его как текстовый, читайте так же, как и писали
C++
1
while( fread(&m,sizeof(double), 1, fOut) )
0
0 / 0 / 0
Регистрация: 26.02.2018
Сообщений: 13
23.04.2018, 22:10  [ТС] 6
Извините, не пойму до конца ... не так ??
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
FILE *fDop;
    double m;
    fopen_s(&fOut, "res.dbl", "rb");
    if (fOut != NULL)
    {
        fopen_s(&fDop, "dop.dbl", "wb");
        if (fDop != NULL)
        {
            while (fread(&m, sizeof(double), 1, fOut) != EOF)
                if (m > 0)
                
                    fread(&m, sizeof(double), 1, fDop);
                
        }
    }
    _fcloseall();
    return 0;
}
0
Модератор
Эксперт С++
13407 / 10518 / 6283
Регистрация: 18.12.2011
Сообщений: 28,079
23.04.2018, 22:52 7
C++
1
2
3
4
5
6
7
        if (fDop != NULL)
        {
            while (fread(&m, sizeof(double), 1, fOut) !=0 )
                if (m > 0)
                    fwite(&m, sizeof(double), 1, fDop);
                
        }
0
0 / 0 / 0
Регистрация: 26.02.2018
Сообщений: 13
23.04.2018, 23:11  [ТС] 8
я сделала, как вы написали, но все равно что-то работает не так, потому что в новый бинарный файл ничего не записывается..
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.04.2018, 23:11
Помогаю со студенческими работами здесь

Повреждается бинарный файл при попытке его записи в другой файл
Делаю автоматизированную сборку. Для этого нужно соединить три файла в один новый. Но почему-то...

Создать бинарный файл и текстовый файл
Вот, к примеру, я написал программу для введения 5 чисел в текстовый файл, а как будет выглядеть...

Переписать бинарный файл
Здравствуйте! Имеется следующее задание: Создать бинарный файл, компонентами которого...

Задача с использованием структуры «текстовый файл» (в файле хранится текст) 1) Переписать в другой текстовый файл самую
Задача с использованием структуры «текстовый файл» (в файле хранится текст) 1) Переписать в другой...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru