Kiberchief
@Kiberchief
Пока учусь.

Kак отсортировать файл имен в алфавитном порядке?

Нужно создать файл на 5000 имен, отсортировать файл имен в алфавитном порядке и отсортированные данные запихнуть в другой файл.
Вот что я смог сделать но у меня почему то sort сортировать не хочет.
#include <iostream>
#include <fstream>
#include <vector>
#include <random>
#include <cstdlib>
#include <algorithm>

void GenerFile()
{
    std::mt19937 gen{ std::random_device()() };
    std::uniform_int_distribution<int>uid(0, 8);
    std::ofstream f("name.txt");
    if (!f.is_open())
    {
        std::cout << "error file";
    }
    else
    {
        std::vector<std::string>vc = { "Oleg","Galya","Timon","Pumba","Dima","Nataha","Roman","Lera","Grisha" };
        for (int i = 0; i < 5000; ++i)
        {
            f << vc[uid(gen)].c_str() << " ";

        }
        f.close();
    }
}

void Sort(std::vector<std::string>&vct)
{
    std::sort(vct.begin(), vct.end());
    std::ofstream g("sortname.txt");
    for (int i = 0; i < 5000; ++i)
    {
        g << vct[i].c_str() << " ";
    }
    g.close();
}

void ReadFile()
{
    std::ifstream l;
    l.open("name.txt");
    std::vector<std::string>vct(5000);
    for (int i = 0; i < 5000; ++i)
    {
        l >> const_cast<char*>(vct[i].c_str());
    }
    l.close();
    Sort(vct);
}

int main()
{
    GenerFile();
    ReadFile();

    return 0;
}
  • Вопрос задан
  • 709 просмотров
Решения вопроса 1
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
l >> const_cast<char*>(vct[i].c_str());

И что, даже не закралось подозрение, что что-то тут не так?
Не делай так. Делай так: l >> vct[i]; и будет тебе счастье.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы