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

Cортировка файла по заданному полю - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Повторение цикла при наступлении определенного условия http://www.cyberforum.ru/cpp-beginners/thread1774802.html
Добрый день! Я пишу игру и пытаюсь сделать разыгровку первого хода. Загвоздка в следующем: мне нужно, чтобы при условии "ничья" цикл возвращался в начало и повторялся заново, но никак не могу этого добиться, то бесконечный получается, то вообще неправильно работает... Подскажите пожалуйста, что изменить в моём фрагменте кода или что добавить? Заранее попрошу не писать сложных конструкций, т.к. я...
C++ Unordered map c++ 11 Добрый день, ранее не использовал данный контейнер: какие плюсы и минусы его использования. Как понять, что именно он нужен тебе? http://www.cyberforum.ru/cpp-beginners/thread1774797.html
Проверка на связанность графа C++
Всем Привет. Я получил задание проверить связанный ли граф , у меня имеется матрица смежности (adjacency matri) ,а также написаны и работают такие функции как - recursiveDepthSearch -iterativeBreadthSearch -iterativeDepthSearch. Я хотел бы чтобы кто-то мне расписал алгоритм выполнения задания ) Заранее спасибо
Приведение к типу C++
В чем разница? static_cast<int>(a); и (int)a
C++ Компиляторы восстали против меня http://www.cyberforum.ru/cpp-beginners/thread1774736.html
Не могу скомпилировать c++ программу. на MSVS - компилируется, но не запускается ехе. Codelite - проблемы с make. MinGW - тоже компилирует, на выходе получаю .exe. Но он ничего не делает. Вот программа на C компилируется при помощи gcc, с выходным .exe и работает. Есть какие-то мысли? Я пытался бороться с этим. Раза три читал gcc, g++.info. Все команды перепробовал, все ровно. MSVS 2008 у...
C++ Заполнить матрицу змейкой согласно условию Доброго времени суток,в общем,у меня такая проблема,не могу понять ,как сделать подобную задачу,пытался заполнить через rand , пытался использовать сортировки,но пока ничего не получается,может кто-то помочь с данно задачей ? подробнее

Показать сообщение отдельно
nstwf
87 / 77 / 30
Регистрация: 19.02.2016
Сообщений: 324
Завершенные тесты: 1
02.07.2016, 20:37     Cортировка файла по заданному полю
Как-то так.
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
#include <iostream>
#include <fstream>
#include <string>
#include <Windows.h>
using namespace std;
 
struct test
{
    string name;
    double mark;
};
 
int Cr(string fname)
{
    int n = 0;
    ifstream fin(fname);
    while (!fin.eof())
    {
        if (fin.get() == '\n')
            n++;
    }
    fin.close();
    return n;
}
 
 
void main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    string fname = "1.txt";
    cout << "Кол-во учеников: " << Cr(fname);
    int n = Cr(fname);
    test *Test = new test[n];
    ifstream fin(fname);
    for (int i = 0; i < n; i++)
    {
        fin >> Test[i].name >> Test[i].mark;
        cout << Test[i].name << " - " << Test[i].mark << endl;
    }
    fin.close();
    //Тут сортируешь по убыванию Test[i].mark и записываешь в другой файл.
 
 
    delete[] Test;
    system("pause");
}
Добавлено через 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
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
#include <iostream>
#include <fstream>
#include <string>
#include <Windows.h>
using namespace std;
 
struct test
{
    string name;
    double mark;
};
 
int Cr(string fname)
{
    int n = 0;
    ifstream fin(fname);
    while (!fin.eof())
    {
        if (fin.get() == '\n')
            n++;
    }
    fin.close();
    return n;
}
 
 
void main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    string fname = "1.txt";
    cout << "Кол-во учеников: " << Cr(fname);
    int n = Cr(fname);
    test *Test = new test[n];
    ifstream fin(fname);
    test Help;
    for (int i = 0; i < n; i++)
    {
        fin >> Test[i].name >> Test[i].mark;
        cout << Test[i].name << " - " << Test[i].mark << endl;
    }
    for (int i = 0; i <= n; i++)
    {
        for (int j = n - 1; j > i; j--)
        {
            if (Test[j].mark < Test[i].mark)
            {
                Help = Test[j];
                Test[j] = Test[i];
                Test[i] = Help;
            }
        }
    }
    cout << "\nОтсортированный список :\n";
    ofstream fout("2.txt");
    for (int i = 0; i < n; i++)
    {
        cout << Test[i].name << " - " << Test[i].mark << endl;
        fout << Test[i].name << " " << Test[i].mark << "\n";
    }
    fout.close();
 
    fin.close();
    delete[] Test;
    system("pause");
}
1.txt
Миша 262.5
Аня 268.5
Лена 334.3
Слава 168.1

2.txt
Слава 168.1
Миша 262.5
Аня 268.5
Лена 334.3


Добавлено через 2 минуты
Не уследил, что по убыванию, 46 строка
C++
1
if (Test[j].mark > Test[i].mark)
 
Текущее время: 22:13. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru