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

Чтение и сохранение из/в файл

18.05.2018, 12:13. Показов 623. Ответов 5
Метки нет (Все метки)

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

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
#include <iostream>
using namespace std;
 
void print(int *input, int n)
{
 for (int i = 0; i < n; i++)
      cout << input[i] << " ";
}
void radixsort(int *input, int n)
{
  int i;
  int maxNumber = input[0];
  for (i = 1; i < n; i++)
  {
    if (input[i] > maxNumber)
      maxNumber = input[i];
  }
  
  int exp = 1;
  int *tmpBuffer = new int[n];
  while (maxNumber / exp > 0)
  {
    int decimalBucket[10] = {  0 };
    for (i = 0; i < n; i++)
      decimalBucket[input[i] / exp % 10]++;
    for (i = 1; i < 10; i++)
      decimalBucket[i] += decimalBucket[i - 1];
    for (i = n - 1; i >= 0; i--)
      tmpBuffer[--decimalBucket[input[i] / exp % 10]] = input[i];
    for (i = 0; i < n; i++)
      input[i] = tmpBuffer[i];
    exp *= 10;
      cout << "\nPASS   : ";
      print(input, n);
  }
}
const int INPUT_SIZE = 10;
int main()
{
   int input[10];
 for (int i=0;i<10;i++)
 cin>>input[i];
  cout << "Input: ";
  print(input, INPUT_SIZE);
  radixsort(input,INPUT_SIZE);
  cout << "\nOutput: ";
  print(input, INPUT_SIZE);
  cout << "\n";
  return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.05.2018, 12:13
Ответы с готовыми решениями:

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

Сохранение класса в файл и его чтение
К примеру Human (главное то, что в нем есть string): class Human{ public: string name; }; ...

Сохранение и чтение объекта класса в файл/из файла
Добрый день! Столкнулся с проблемой сохранения объекта класса в файл, и последующего его...

Работа со структурой данных, чтение/сохранение во внешний файл
помогите разобраться с задачкой!! {Написать программу, представляющую собой простейшую систему для...

5
34 / 34 / 37
Регистрация: 21.06.2012
Сообщений: 152
18.05.2018, 12:59 2
Цитата Сообщение от DellXT Посмотреть сообщение
Нужно читать элементы из файла в динамический массив и сохранение после сортировки
Я не понимаю, сейчас что в школах детей сразу учат программировать на плюсах со 2-го класса, еще до того как научат грамоте?! Может перед программированием, вы сначала падежи и склонения существительных выучите.
А то непонятно что именно сохранение (sic) вам нужно: элементы, файл или сортированный динамический массив, и куда именно в файл который читать (sic) или какой-то другой?
0
0 / 0 / 1
Регистрация: 15.11.2017
Сообщений: 96
18.05.2018, 13:11  [ТС] 3
Haklag, да извиняюсь, ради Бога..
После сортировки *сохранить отсортированный массив в новый файл.
Примерно читать из 1.txt; а сохранить в 2.txt
0
34 / 34 / 37
Регистрация: 21.06.2012
Сообщений: 152
18.05.2018, 13:26 4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <fstream>
#include <algorithm>
#include <vector>
 
int main(int argc, const char * argv[]) {
    std::vector<int> array{std::istream_iterator<int>{*(new std::ifstream{"/tmp/1.txt"})},
                           std::istream_iterator<int>{}
    };
    std::sort(std::begin(array), std::end(array), std::less<int>());
    std::ofstream output{"/tmp/2.txt", std::ios::trunc};
    std::copy(std::cbegin(array), std::cend(array), std::ostream_iterator<int>{output, " "});
    return 0;
}
0
0 / 0 / 1
Регистрация: 15.11.2017
Сообщений: 96
18.05.2018, 13:37  [ТС] 5
Haklag, А как этот фрагмент в общий код гладко "вклеить"?
0
34 / 34 / 37
Регистрация: 21.06.2012
Сообщений: 152
18.05.2018, 13:52 6
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
#include <iostream>
#include <fstream>
#include <algorithm>
#include <vector>
 
template <typename T>
void radixsort(std::vector<T> &input)
{
    auto maxNumber = *std::max_element(std::cbegin(input), std::cend(input));
    auto n = input.size();
    int exp = 1;
    std::vector<T> tmpBuffer(n, T());
    while (maxNumber / exp > 0)
    {
        int decimalBucket[10] = {  0 };
        for (auto i = 0; i < n; i++)
            decimalBucket[input[i] / exp % 10]++;
        for (auto i = 1; i < 10; i++)
            decimalBucket[i] += decimalBucket[i - 1];
        for (auto i = n - 1; i >= 0; i--)
            tmpBuffer[--decimalBucket[input[i] / exp % 10]] = input[i];
        input = std::move(tmpBuffer);
        exp *= 10;
        std::cout << "\nPASS   : ";
        std::copy(std::cbegin(input), std::cend(input), std::ostream_iterator<int>{std::cout, " "});
    }
}
 
int main(int argc, const char * argv[]) {
    std::vector<int> array{std::istream_iterator<int>{*(new std::ifstream{"/tmp/1.txt"})},
                           std::istream_iterator<int>{}
    };
    radixsort(array);
    std::sort(std::begin(array), std::end(array), std::less<int>());
    std::ofstream output{"/tmp/2.txt", std::ios::trunc};
    std::copy(std::cbegin(array), std::cend(array), std::ostream_iterator<int>{output, " "});
    return 0;
}
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.05.2018, 13:52
Помогаю со студенческими работами здесь

Чтение и сохранение в файл
Добрый день! Помогите делаю прогу, к-я по входным параметрам a,b,c вычисляет x,y,z.(компоненты...

Матрица: чтение и сохранение в файл
Есть двумерный массив, записанный в файле как матрица размерности 12*4. Необходимо считать ее,...

Чтение из файла и сохранение в файл
Здравствуйте. Работаю с текстовым файлом формата .txt. Считывается текст из файла, который затем...

Сохранение ArrayList в файл и его чтение
Привет! Имеется: List&lt;File&gt; mImg = new ArrayList&lt;&gt;(); File dir = new...


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

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

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