Для того чтобы написать функцию, которая сможет считывать числа из файла, записанные через пробел, в массив, можно воспользоваться стандартными возможностями языка C++ и его стандартной библиотеки.
Вот пример реализации такой функции:
#include <iostream> #include <fstream> #include <vector> #include <sstream> void readNumbersFromFile(const std::string& filename, std::vector<int>& numbers) { std::ifstream inputFile(filename); // Открываем файл для чтения if (inputFile.is_open()) { // Проверяем, удалось ли открыть файл std::string line; while (std::getline(inputFile, line)) { // Читаем файл построчно std::istringstream iss(line); int number; while (iss >> number) { // Считываем числа из строки numbers.push_back(number); // Добавляем числа в массив } } inputFile.close(); // Закрываем файл } else { std::cout << "Unable to open file " << filename << std::endl; // Выводим сообщение об ошибке, если не удалось открыть файл } }
В данном примере функция readNumbersFromFile
принимает два аргумента: имя файла filename
и ссылку на вектор numbers
, в который будут считываться числа. Функция открывает файл для чтения и проверяет, удалось ли его открыть. Затем она последовательно считывает строки из файла и в каждой строке разбивает ее на отдельные числа с помощью std::istringstream
. Считанные числа добавляются в конец вектора numbers
с помощью функции push_back
. После окончания чтения файла, он закрывается.
Чтобы воспользоваться функцией, можно вызвать ее следующим образом:
int main() { std::vector<int> numbers; readNumbersFromFile("input.txt", numbers); // Выводим считанные числа на экран for (int number : numbers) { std::cout << number << " "; } std::cout << std::endl; return 0; }
В этом примере мы создаем вектор numbers
, вызываем функцию readNumbersFromFile
для чтения чисел из файла "input.txt" и передаем созданный вектор в качестве аргумента. Затем мы выводим считанные числа на экран.