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

Прочитать числа из одного файла и записать их в другой

30.01.2019, 12:10. Просмотров 322. Ответов 1
Метки нет (Все метки)

Всем привет. Нужно создать программу.
Программа генерирует N-ое количество рандомных чисел в интервале от -10 до 50 (N-вводит пользователь).
Далее все эти числа программа записывает в бинарный файл A.dat.
Читает из этого файла все числа, удваивает и записывает их во второй бинарный файл B.dat.
Читает числа из A.dat и меняет все положительные числа на 0 и записывает всё в C.dat.

Вот не большое начало, далее просто не понимаю как из файла взять числа...

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include<stdio.h>
#include<conio.h>
#include<iostream>
using namespace std;
 
 
int main()
{ 
 
 FILE *fp;
 
 fp=fopen("d://A.dat.txt","wb");
 
 for (int i=-10;i<50;i++)
    {
        int n=rand()%50-10;
        printf("%i\n",n);
        fwrite(&n,sizeof(n),1,fp);
    }
 fclose(fp);
 
 getch();
 return 0;
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.01.2019, 12:10
Ответы с готовыми решениями:

Из текстового файла прочитать четные числа и записать их в другой файл (С++)
Из текстового файла прочитать четные числа и записать их в другой файл без использования массива...

Из текстового файла прочитать четные числа и записать их в другой файл без использования массива (код С++)
Код есть только перед чтением файла нужно его создать, внести 15 чисел и закрыть, через ofstream. ...

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

Удалить строки из одного файла и записать их в другой
имеется текстовый файл F1.txt. В нем, скажем 10 строк, разделенный знаком каретки(снос строки)....

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

1
igorrr37
2037 / 1602 / 799
Регистрация: 21.12.2010
Сообщений: 2,751
Записей в блоге: 10
05.02.2019, 13:41 2
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#include <iostream>
#include <fstream>
#include <string>
#include <random>
#include <algorithm>
#include <vector>
#include <stdexcept>
#include <iterator>
#include <iomanip>
#include <future>
#include <thread>
#include <chrono>
 
using namespace std::chrono_literals;
 
void Write(std::string const& fp, std::vector<int> const& vct)
{
    std::ofstream ofs{ fp, std::ios::binary };
    if (!ofs.is_open())
    {
        throw std::runtime_error{ "Write: Unable to open file: " + fp };
    }
    ofs.write((char*)vct.data(), vct.size() * sizeof(int));
    ofs.close();
}
 
auto Read(std::string const& fp)
{
    std::ifstream ifs{ fp, std::ios::binary };
    if (!ifs.is_open())
    {
        throw std::runtime_error{"Read: Unable to open file: " + fp};
    }
 
    ifs.seekg(0, ifs.end);
    //std::this_thread::sleep_for(100ms);
    auto const fsize = ifs.tellg();
    ifs.seekg(0, ifs.beg);
 
    std::vector<int> vct(fsize / sizeof(int));
    ifs.read((char*)vct.data(), fsize);
    ifs.close();
 
    return vct;
}
 
void Print(std::vector<int> const& vct)
{
    for (auto const val : vct)
    {
        std::cout << std::setw(5) << std::left << val;
    }
    std::cout << std::endl;
}
 
 
int main()
{
    try
    {
        int const n = 10; // число N
        std::vector<int> vct;
        std::mt19937 eng{ std::random_device{}() };
        std::uniform_int_distribution<> uid{ -10, 50 };
        std::generate_n(std::back_inserter(vct), n, [&]() {return uid(eng); });
        Print(vct);
        Write("a.dat", vct);
 
        auto fb = std::async(std::launch::async, []()
        {
            auto vct = Read("a.dat");
            std::transform(vct.begin(), vct.end(), vct.begin(), [](auto const a) {return a * 2; });
            Write("b.dat", vct);
            return vct;
        });
        auto fc = std::async(std::launch::async, []()
        {
            auto vct = Read("a.dat");
            std::transform(vct.begin(), vct.end(), vct.begin(), [](auto const a) {return a > 0 ? 0 : a; });
            Write("c.dat", vct);
            return vct;
        });
        
        Print(fb.get());
        Print(fc.get());
 
    }
    catch (std::exception const& exc)
    {
        std::cerr << "Exception: " << exc.what() << std::endl;
    }
}
0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.02.2019, 13:41

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

Как правильно прочитать целые числа из файла и записать их в массив
#include &lt;iostream&gt; #include &lt;stdio.h&gt; #include &lt;cstdlib&gt; using namespace std; void...

Из одного файла считать целые числа, в другие файлы записать четные и нечетные числа
Нужно с одного файла считать целые числа и в другие файлы записать четные и нечетные числа. Вот...


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

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

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