Задать вопрос
sanManjiro
@sanManjiro

Как написать функцию, которая бы могла считывать числа из файла, записаные через пробел, в массив?

Нужно сделать функцию, которая бы записывала в массив числа из файла, расположенные через пробел. Пример:
...
-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;
}
  • Вопрос задан
  • 94 просмотра
Подписаться 1 Простой 1 комментарий
Решения вопроса 1
egor_nullptr
@egor_nullptr
Используйте ifstream.
#include <iostream>
#include <fstream>

int main(int argc, char** argv)
{
    std::ifstream fin("numbers.txt");
    int num;

    while (fin >> num) {
        std::cout << num << std::endl;
    }; 

    return EXIT_SUCCESS;
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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