Как взаимно заменить числа в файле

318
30 октября 2017, 23:36

Всем доброго времени суток,

Есть такая вот задачка:

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

Файл прога заполняет, значения считывает и присваивает в min и max, но о том, чтобы хотя бы просто поменять местами min с max'ом (Не учитывая их позиции) речи пока не идёт. Прога пытается это сделать, но выходит не то, что требуется.

Подскажите, пожалуйста, что и где не так?

Заранее спасибо.

#include "stdafx.h"
#include <clocale>
#include <iostream>
#include <fstream>
#include <string>
#include <cstdlib>
using namespace std;

int main()
{
    setlocale(0, "");
    int s = 0, s2 = 0, p, min = 0, max = 0;
    string S , R;
    fstream F;
    F.open("Numbers.txt", ios::in | ios::out);
    do {
        int k = 0;
        cout << "Введите число: ";
        cin >> k;
        F << k << endl;
        s++;
    } while (s < 5);
    F.seekg(0, SEEK_SET);
    while (!F.eof())
    {
        F >> p;
        if (p < min) min = p;
        if (p > max) max = p;
    }
    F.close();
    F.open("Numbers.txt", ios::in | ios::out);
    F.seekg(0, SEEK_SET);
    while (s2 < 5)
    {
        F >> p;
        if (p == min)
        {
            F.seekp(s2) << max;
            s2++;
        }
        else if (p == max)
        {
            F.seekp(s2) << min;
            s2++;
        }
        else s2++;
    }
    F.close();
    system("pause");
    return 0;
}
READ ALSO
Существует ли проверка интерфейса шаблона C++?

Существует ли проверка интерфейса шаблона C++?

В книге Бьярне Страуструпа "ПрограммированиеПринципы и практика с использованием C++, 2-е издание

241
Классификация итераторов

Классификация итераторов

Как в коде применяются классы классификации итераторов:

244
Как обнулить значение в массиве с++ [требует правки]

Как обнулить значение в массиве с++ [требует правки]

Как обнулить значение элемента массива A, если в массиве B существует такое значение, которое при сложении с текущим элементом массива A дает...

441
Как добавить столбец в матрицу? с++

Как добавить столбец в матрицу? с++

надо добавить столбец в matrix из вектора matrix1

798