Нужно сделать функцию, которая бы записывала в массив числа из файла, расположенные через пробел. Пример:
...
-24959 -6533 -18666 1500 -5831 -9276 -13522 4358 1962 -536 -19295 3145 -1719 -8173 -15039 -24509 -22005 -13058 -20173 -19564 7391 -10396 -21098 -24847 -24708 -12618 -7579 -6284 -5282 -5105 -19553 -3274 -10229 -13462 -23131 -5088 667 1299 -7965 -15106 3703 -1189 6322 5333 -7327 -20336 -9859 -17289 3253 -18132 547 2644 7662 7757 -4963 -12141 -16277 -15259 2529 -24222 -12684 -21965 -2810 -23158 -24712 5106 -15960 -16058 -5736 -2352 2446 -1195 -9110 -18271 -630 -9650 -9994 6101 -607
...
Если бы не было пробела, то можно было бы использовать построчный getline, а вот через пробел возникают трудности.
Код:
#include <iostream>
#include <conio.h>
#include <iostream>
#include <fstream>
#include <array>
using namespace std;
// Функция генерации числа в заданном диапозоне
int random(int min, int max)
{
return min + rand() % (max - min);
}
// Компонент генерации и записи N кол-ва чисел в файл в заданном диапозоне
void generation(const int num) {
int min = -25000,
max = 25000;
ofstream out;
out.open("D:\\input.txt");
if (out.is_open())
{
for (int i = 0; i < num; i++) {
out << random(min, max) << " ";
}
}
else {
cout << "Файл не может быть открыт!" << endl;
}
out.close();
};
// Компонент простого выбора
void method_simple_sort(int A[], int n) {
int i, j;
int count, key;
for (i = 0; i < n - 1; i++)
{
count = A[i]; key = i;
for (j = i + 1; j < n; j++)
if (A[j] < A[key]) key = j;
if (key != i)
{
A[i] = A[key];
A[key] = count;
}
}
cout << "Результирующий массив: ";
for (i = 0; i < n; i++) cout << A[i] << " "; //вывод массива
};
void read_file() {
};
void method_puzirek();
void method_shell();
void quick_sort();
void method_quick_sort(/*--------------*/);
int main(void) {
setlocale(LC_ALL, "RU");
int arraySimpleSort [5] = { 1, 2, 3, 4, 5 };
generation(1000);
read_file();
method_simple_sort(arraySimpleSort, 2);
method_puzirek();
method_shell();
quick_sort();
return EXIT_SUCCESS;
}