С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 28.05.2018
Сообщений: 21
1

Чтение из файла и запись

13.01.2019, 23:27. Показов 428. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Задача такова: Даны два файла вещественных чисел, в которых данные отсортированы по не убыванию. Сформируйте выходной файл из чисел первого и второго входных файлов, чтобы его данные были отсортированы по не возрастанию. Имена всех файлов запрашивается с клавиатуры.
Подскажите, что я делаю не так при создании 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
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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
#include "stdafx.h"
#include <iostream>
#include <stdio.h>
#include <string>
#include <vector>
#include <string>
#include <fstream>
#include <iomanip>
#include <algorithm>
#include <conio.h>
#include <fstream>
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(0, "");
    string fname, fname1, fname2;
    double *arr1, *arr2; //массивы вещественных чисел для записи в файл
    int n,m,i,j; // m,n-переменные-кол-ва чисел, i,j-переменные-счетчики для циклов
    double k; //переменная для записи вещественных чисел
//файл 1
    cout<<"Введите имя файла №1 для записи:"<<endl;
    getline(cin, fname1);
    fname1=fname1+".dat";
    cout<<"Введите количество чисел для создания файла №1:"<<endl;
    cin >> n;
    arr1=new double [n];
    cout<<"Введите вещественные числа с новой строки для файла №1 с новой строки каждое:"<<endl;
    for(i=0; i<n; ++i)  // формируется массив вещественных чисел
        {
            cin>>k;
            arr1[i]=k;
        }
    for (j=1; j<n; j++) // сортировка по не убыванию
    for (i=0; i<(n-j); i++)
    {
        if (arr1[i]>=arr1[i+1]) 
        swap(arr1[i], arr1[i+1]);
    }
    fstream f;
    f.open(fname1,ios::out|ios::binary);  // открываем файл как бинарный для записи
    for(i=0; i<n; ++i)  // запишем массив в файл №1
        {
            k=arr1[i];
            f.write((char*)&k,sizeof(double));
        }
    f.close();
    cin.clear();
    cin.sync();
//файл 2
    cout<<"Введите имя файла №2:"<<endl;
    getline(cin, fname2);
    fname2=fname2+".dat";
    cout<<"Введите количество чисел для создания файла №2:"<<endl;
    cin >> m;
    arr2=new double [m];
    cout<<"Введите вещественные числа с новой строки для файла №2 с новой строки каждое:"<<endl;
    for(i=0; i<m; ++i)  // формирование массива 2
        {
            cin>>k;
            arr2[i]=k;
        }
    for (j=1; j<m; j++) // сортировка массива по не убыванию
    for (i=0; i<(m-j); i++)
    {
        if (arr2[i]>=arr2[i+1]) 
        swap(arr2[i], arr2[i+1]);
    }
    fstream f2;
    f2.open(fname2,ios::out|ios::binary);  // открываем файл как бинарный для записи
    for(i=0; i<m; ++i)  // запишем массив 2 в файл №2
        {
            k=arr2[i];
            f2.write((char*)&k,sizeof(double));
        }
    f2.close();
    cin.clear();
    cin.sync();
//файл 3
    string name,path;
    vector <double> arr;
    ifstream input;
    cout << "ВХОДНЫЕ ДАННЫЕ\nДалее введите именя 2-х файлов для создания 3-го"<<endl;;
    for (int count = 1; count < 3; count++) {
        while (!input.is_open()) {
            cout << "Введите имя файла № " << count << ": "<<endl;
            cin >> name;
    path="C:\\Users\\20fox\\Desktop\\Новая папка (2)\\lab_4\\lab_4\\"+name+".dat";
            input.open(path);
            if (!input.is_open()) {
                cout << "Ошибка! Отсутствует файл с таким именем."<<endl;
            }
        }
        while (!input.eof()) {
            double p;
            input >> p;
            arr.push_back(p);
        }
        input.close();
    }
 
    sort(arr.begin(), arr.end());
    cout << "ВЫХОДНЫЕ ДАННЫЕ\nВведите имя выходного файла:"<<endl;
    cin >> fname;
    ofstream output(fname);
    for (int count = 0; count < arr.size(); count++) {
        output << arr.at(count) << " ";
    }
    output.close();
    system("pause");
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Блог
13.01.2019, 23:27
Ответы с готовыми решениями:

Чтение файла, чтение названия папки где находится файл, запись данных на PHP
Допустим у нас есть структура с папками типа Large -&gt; Vehicles -&gt; Firetruck_0 В этой папке лежит...

Ввод с клавиатуры и запись в файл, чтение из файла и запись в массив, вывод из массива на экран
1.Ввод с клавиатуры и запись в файл, чтение из файла и запись в массив, вывод из массива на экран...

Запись и чтение *.txt файла - запись частичная
Доброе время суток! Помогите решить проблемку. У меня либо не полностью считывается файл, либо не...

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

0
13.01.2019, 23:27
cpp_developer
Эксперт
20123 / 5690 / 417
Регистрация: 09.04.2010
Сообщений: 12,546
Блог
13.01.2019, 23:27
Помогаю со студенческими работами здесь

Запись и чтение из файла
К Питеру Паркеру приехало N человек. Для их перевозки тётя Мэй выделила автомобили вместимостью К и...

Чтение/запись файла
Вот сделал такую прогу. Очень простая. Создает файл, где есть 100 полей. Каждое поле это строка из...

Запись и чтение из файла
Всем добрый вечер, как можно записать данные в файл? Например записать в txt файл список паролей....

Чтение и запись файла
Господа, добрый день! Прошу помощи, полгода назад данный код компилировался на компе в...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru