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

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

Войти
Регистрация
Восстановить пароль
 
sd710
1 / 1 / 0
Регистрация: 19.12.2012
Сообщений: 23
#1

Сортировка однотипных элементов из файла - C++

29.05.2013, 19:57. Просмотров 277. Ответов 5
Метки нет (Все метки)

Есть файл, в нем хранятся однотипные элементы (какие не важно). Для простоты там будут лежать числа. количество не известно.
Нужна функция которая отсортирует содержимое файла (числа). На выходе получить другой файл, где лежат эти числа отсортированные (не важно как по возрастанию или убыванию).

Предложите свои решения. Можно только функцию, можно хотя бы предложение, как это сделать.

Добавлено через 2 часа 18 минут
Может я не понятно изложил задачу.

пример данных из файла (они однотипные, необязательно числа):
Кликните здесь для просмотра всего текста
9 1 0 4 3 2

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

файл полученный на выходе:
Кликните здесь для просмотра всего текста
0 1 2 3 4 9
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.05.2013, 19:57
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сортировка однотипных элементов из файла (C++):

Как создать массив строк, считывая данные из файла (сортировка данных из файла) - C++
Доброго времени суток мне нужно отсортировать по алфавиту слова , которые содержатся в файле #include <iostream> #include ...

Сортировка слов текстового файла путём слияния данных из файла и заданного внутреннего массива - C++
Здравствуйте. Имеется задание, которое я ни в коем случае не прошу за меня сделать. Мне непонятно пару моментов, которые бы мне...

Генерирование однотипных уравнений - C++
Пример приложен в файле Возможно ли написать код, так, чтобы автоматически генерировались подобные уравнения? Если возможно, с хоть...

Обработка наборов однотипных данных - C++
помогите пожалуйста составить программу, которая переформирует заданную матрицу так, чтобы ее строки располагались в порядке убывания...

Хранение большого количества однотипных данных - C++
Добрый день. Подскажите, каким образом хранить данные для программы? Например, у меня имеется 1000 - 300 000 строковых данных, которые...

Вычисление однотипных сумм и функции пользователя. - C++
Всем привет. Кто-нибудь знает, как решить такую задачу? Я запутался. (заранее прошу прощения за то, что условие в виде картинки) ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
alsav22
5420 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
29.05.2013, 20:03 #2
Посчитать количество элементов в файле, создать динамический массив нужного размера, считать туда элементы, отсортировать, записать отсортированный массив в файл.
0
yleart
60 / 45 / 1
Регистрация: 07.10.2011
Сообщений: 139
29.05.2013, 20:06 #3
Используйте файловые сортировки
1
sd710
1 / 1 / 0
Регистрация: 19.12.2012
Сообщений: 23
29.05.2013, 20:16  [ТС] #4
Цитата Сообщение от alsav22 Посмотреть сообщение
Посчитать количество элементов в файле, создать динамический массив нужного размера, считать туда элементы, отсортировать, записать отсортированный массив в файл.
Создавать динамический массив это решение, но не самое лучшее. Нужно использовать вспомогательные файлы (я так думаю).

Добавлено через 25 секунд
Цитата Сообщение от yleart Посмотреть сообщение
Вроде то, что надо. попробую разобраться. спасибо
0
Пaтрик
415 / 390 / 38
Регистрация: 21.01.2012
Сообщений: 972
Завершенные тесты: 1
29.05.2013, 20:17 #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
#include <algorithm>
#include <iostream>
#include <iterator>
#include <fstream>
#include <vector>
 
template <typename T>
bool sort_numbers(const char *input, const char *output)
{
    std::ifstream in(input);
    if (!in.is_open())
        return false;
    std::ofstream out(output);
    if (!out.is_open())
        return false;
    std::vector<T> data (
        (std::istream_iterator<T>(in)),
        (std::istream_iterator<T>()));
    std::sort(data.begin(), data.end());
    std::copy(data.begin(), data.end(), std::ostream_iterator<T>(out, " "));
    in.close();
    out.close();
    return true;
}
 
int main()
{
    sort_numbers<double>("in.txt", "out.txt");
}
1
alsav22
5420 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
29.05.2013, 21:14 #6
Цитата Сообщение от sd710 Посмотреть сообщение
Создавать динамический массив это решение, но не самое лучшее.
Но самое простое. Хотя, дело ваше, пробуйте.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.05.2013, 21:14
Привет! Вот еще темы с ответами:

Пригоден ли С++ для решения однотипных задач по механике - C++
Всем здравствуйте. Иногда страдаю решением однотипных задач по механике, в которых очень много формул. Значения переменных для формул...

Выбрать различные цифры из однотипных строк регулярными выражениями - C++
есть много таких строк: &lt;AddOrder price=&quot;100.20&quot; orderId=&quot;199&quot; operation=&quot;BUY&quot; /&gt; &lt;DeleteOrder orderId=&quot;199&quot; /&gt; нужно выцепить отсюда...

Вычислить значение выражения содержащего несколько однотипных сумм - C++
Помогите пожалуйста с таким заданием: Вычислить значение величины, содержащей несколько однотипных сумм. Для вычисления сумм написать...

Сортировка файла - C++
Каким образом можно сортировать файл по ключам (полям).?


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

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

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