Вывод отсортированных строк из файла

252
09 мая 2017, 06:21

Дан файл с результатами игры с информацией об имени и времени игры примерно такой:

6/Maksim
1/Andrey
10/Dmitriy
15/Alexey
8/Liza

То есть у меня есть игра, в которой основная цель - продержаться как можно дольше. Кто продержался дольше - тот якобы самый лучший игрок. После каждой сессии игры запрашиваесть имя игрока, и эта информация записывается в файл Top.txt в следующем формате:

количество_секунд/имя_игрока

Нужно вывести в консоль отсортированные результаты. Я, честно говоря, даже не имею идей, как это сделать.
Исходя из данных выше, нужно чтобы в консоль вывелось вот это:

15/Alexey
10/Dmitriy
8/Liza
6/Maksim
1/Andrey
Answer 1
#include <vector>
#include <string>
#include <iostream>
#include <iomanip>
#include <fstream>
#include <algorithm>
using namespace std;
int main()
{
    vector<string> v;
    ifstream in("data");
    string s;
    while(getline(in,s))
        v.push_back(s);
    sort(v.begin(),v.end(),[](const string& s1, const string& s2)
         { return stoi(s1) > stoi(s2); });
    for(auto s: v)
        cout << s << endl;
}

Для супердревностей с недоделками (проверял на Open Watcom 1.9)

#include <vector>
#include <string>
#include <iostream>
#include <iomanip>
#include <fstream>
#include <algorithm>
using namespace std;
bool compare(const string& s1, const string& s2)
{
    return atoi(s1.c_str()) > atoi(s2.c_str());
}
int main()
{
    vector<string> v;
    ifstream in("data");
    char buf[256];
    while(in.getline(buf,256))
        v.push_back(buf);
    sort(v.begin(),v.end(),compare);
    for(vector<string>::iterator s = v.begin(); s != v.end(); ++s)
        cout << s->c_str() << endl;
}
READ ALSO
Метавычесление констант в boost::mpl

Метавычесление констант в boost::mpl

У меня есть задание на метавычисление констант с помощью boost::mpl:

282
Как подключить Vreen в проект Qt?

Как подключить Vreen в проект Qt?

Как подключить Vreen в проект Qt? Пытался сделать все по инструкции, но ничего не вышлоТак как инструкция для ОС Linux (Ubuntu), а у меня Windows и стоит...

381
SFML+OpenGL: Как заставить работать вместе?

SFML+OpenGL: Как заставить работать вместе?

При использовании их вместе, то, что рисуется OpenGL не отображается

326
Как установить библиотеку Vreen в Qt?

Как установить библиотеку Vreen в Qt?

Как установить библиотеку Vreen в Qt? Официальная инструкция по установке для ОС Linux, а у меня стоит WindowsОчень прошу, кто может скинуть инструкцию...

258