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

Отсортировать по расширениям данные в файле

05.01.2018, 17:08. Показов 539. Ответов 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
#include <windows.h>
#include <stdio.h>
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <conio.h>
#include <string.h>
#include <iomanip> 
#define sp system("pause")
#define sl setlocale(LC_ALL, "")
using namespace std;
char  b[100] = {};
int Count, a;
char File[40];
FILE *F_rec;
enum ConsoleColor {
    Black, Blue, Green, Cyan, Red, Magenta, Brown, LightGray, DarkGray,
    LightBlue, LightGreen, LightCyan, LightRed, LightMagenta, Yellow, White
};
void SetColor(int text, int background)
{
    HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleTextAttribute(hStdOut, (WORD)((background << 4) | text));
}
struct Record
{
    char way[20];
    char expansion[4];
    void operator < (Record t)
    {
 
    }
};
void main()
{
    sl;
    const int size = 1000;
    char  b[size], p[size] = {}, *m = 0, n;
    int l = 0, a = 0;
    int i = 1;
    Record y;
    cout << "Введите имя файла: ";
    gets(File);
    if ((F_rec = fopen(File, "r")) == NULL)
    {
        puts("Открыть файл не удалось\n");
        exit(1);
    }
 
    while (1)
    {
        fgets(b, size, F_rec);
        if (!feof(F_rec))
            strcat(p, b);
        else
            break;
    }
    fclose(F_rec);
    l = strchr(File, '.')-File;
    File[0] = '\0';
    //здесь сортировка
 и запись в другой файл
 
    if ((F_rec = fopen("F:/докум2.txt", "w")) == NULL)
    {
        puts("Открыть файл не удалось\n");
        exit(1);
    }
    fwrite(p, 1, strlen(p), F_rec);
    fclose(F_rec);
    sp;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.01.2018, 17:08
Ответы с готовыми решениями:

Отсортировать данные в файле
В файле data.txt записаны числа, сколько их – неизвестно. Создать из него файл четных чисел и отсортировать их на диске.

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

Копирование файлов по списку в текстовом файле в папки с именами, соответствующими расширениям этих файлов
Добрый день, уважаемые форумчане. Прошу помощи с написанием bat-файла. Значит задача такая. Есть у нас помойка с множеством файлов и...

3
 Аватар для igorrr37
2870 / 2017 / 991
Регистрация: 21.12.2010
Сообщений: 3,728
Записей в блоге: 15
05.01.2018, 21:56
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 <vector>
#include <string>
#include <fstream> 
#include <stdexcept>
#include <algorithm>
 
struct Rec
{
    std::string path;
    std::string ext;
};
 
void main()
{
    std::ifstream ifs("in.txt");
    if (!ifs.is_open())
    {
        throw std::invalid_argument("input file not found");
    }
    std::vector<Rec> vec;
    std::string str;
    while (std::getline(ifs, str))
    {
        Rec rec;
        std::string::size_type dotPos = str.find_last_of('.');
        rec.path = str.substr(0U, dotPos);
        if (dotPos != std::string::npos)
        {
            rec.ext = str.substr(dotPos + 1);
        }
        vec.emplace_back(rec);
    }
    ifs.close();
 
    std::sort(vec.begin(), vec.end(), [](auto const& r1, auto const& r2) {return r1.ext < r2.ext; });
 
    std::ofstream ofs("out.txt");
    for (auto const& val : vec)
    {
        ofs << val.path << '.' << val.ext << std::endl;
    }
    ofs.close();
}
0
-1 / 1 / 1
Регистрация: 14.01.2017
Сообщений: 322
06.01.2018, 15:27  [ТС]
igorrr37, Спасибо большое, только не понятно(
0
 Аватар для igorrr37
2870 / 2017 / 991
Регистрация: 21.12.2010
Сообщений: 3,728
Записей в блоге: 15
07.01.2018, 10:31
Уже без struct
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
#include <iostream>
#include <map>
#include <string>
#include <fstream> 
#include <stdexcept>
 
int main()
{
    std::ifstream ifs("in.txt");
    if (!ifs.is_open())
    {
        throw std::invalid_argument("input file not found");
    }
    // контейнер для хранения считанных из файла строк. 
    std::multimap<std::string, std::string> mrec;
    std::string str;
    // цикл чтения из файла и зиписи в контейнер mrec
    while (std::getline(ifs, str)) // читаем строку из файла
    {
        std::string sext; 
        std::string::size_type dotPos = str.find_last_of('.'); // находим в строке точку 
        if (dotPos != std::string::npos)
        {
            sext = str.substr(dotPos + 1);// если точка найдена то кладём расширение в строку sext
        }
        mrec.emplace(sext, str.substr(0U, dotPos)); // кладём разбитую строку в контейнер mrec. Расширение - key, всё остальное - value.
    }
    ifs.close();
    
    std::ofstream ofs("out.txt");
    // цикл записи из mrec в файл out.txt
    for (auto const& val : mrec)
    {
        ofs << val.second << '.' << val.first << std::endl;
    }
    ofs.close();
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.01.2018, 10:31
Помогаю со студенческими работами здесь

Отсортировать информацию в файле
Подскажите, как отсортировать информацию из файлов в с++??? Заголовок темы изменен модератором. Он должен быть информативным,...

Отсортировать информацию в файле
Всем привет. Такая проблема - допустим есть txt файл с информацией пациентов, по типу: ||||Pacient|||| name: Alexei surname:...

Отсортировать строки в файле
Всем добрый вечер! Собственно, задача: Имеются подобные строки в файле: | 73 || ] || ] || 365 || 133225 || ] || ] | 1 || ] ||...

Отсортировать строку в текст файле
Пользователь вводит с клавиатуры строку текста.Записать эту строку в исходный файл,так чтобы вначале шли цифры,а потом другая информация. ...

Отсортировать записи в типизированном файле.
Дан типизированный файл student.txt В него записаны ученики и их баллы. Программа создает дерево и выводит его. Задача в том, чтобы...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru