Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 1
Регистрация: 05.09.2016
Сообщений: 56

Прочитать данные из файлов

09.08.2022, 14:55. Показов 584. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Мне нужно пройтись по всем файлам с названиями InputData_5_1.txt, InputData_5_2.txt, InputData_5_3.txt, InputData_5_4.txt и т.д. и считать оттуда данные в вектор из второй колонки каждого файла. Количество файлов заранее неизвестно. Причем, первая цифра может быть любой, отличной от 5. Вторая цифра - порядковый номер файла. Подскажите, как организовать цикл, чтобы пройтись по все файлам, у которых название задано по шаблону "InputData_*.txt"? Путь к файлам задается в качестве параметра функции.

C++
1
2
3
4
5
std::vector<double> getDataFromIntutFile(std::string pathToData){
    std::vector<double> datas;
    ...
    return datas;
}
Спасибо.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.08.2022, 14:55
Ответы с готовыми решениями:

Прочитать данные из двух указанных файлов, содержащих записи с названиями книг
Программа должна прочитать данные из двух указанных файлов, содержащих записи с названиями книг (число записей может быть различно и...

Как прочитать данные из файлов бд?
Jira Software была установлена ​​на Windows Server 2003 (x86) с подключением к базе данных PostgreSQL 9.3 (x86). После сбоя диска hdd...

Прочитать и вывести в DataGridView данные из нескольких файлов
Прошу помощи вот в каком вопросе. Есть каталог с файлами. Все файлы одного вида - первая строка заголовок, вторая строка и далее - данные...

5
 Аватар для programmer_08
687 / 444 / 209
Регистрация: 18.10.2020
Сообщений: 1,606
09.08.2022, 15:26
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
#include <iostream>
#include <fstream>
#include <string>
 
void stdcout(std::ifstream& fin)
{
    char c;
    while((c = fin.get()) != EOF)
        std::cout << c;
}
 
int main()
{
    for(int i = 0; i < 10; i++)
    {
        std::string str = "InputData_" + std::to_string(i);
        std::ifstream fin;
        for(int j = 0; j < 9; j++)
        {
            fin.open(str + "_" + std::to_string(j) + ".txt");
            if(fin.is_open())
            {std::cout << "\n" << str + "_" + std::to_string(j) + ".txt" << "\n";
            stdcout(fin);}//здесь вставьте свою функцию чтения из файла
            fin.close();
        }
    }
    std::cin.get();
}
если там именно цифры то можно так
0
0 / 0 / 1
Регистрация: 05.09.2016
Сообщений: 56
09.08.2022, 15:30  [ТС]
Спасибо, только число файлов InputData_5_*.txt заранее неизвестно. Как в таком случае сделать?
0
 Аватар для programmer_08
687 / 444 / 209
Регистрация: 18.10.2020
Сообщений: 1,606
09.08.2022, 15:34
mariellla, ну у вас же написано цифры... или там могут быть числа?

Добавлено через 1 минуту
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
#include <iostream>
#include <fstream>
#include <string>
 
void stdcout(std::ifstream& fin)
{
    char c;
    while((c = fin.get()) != EOF)
        std::cout << c;
}
 
int main()
{
    for(int i = 0; i < 10; i++)
    {
        std::string str = "InputData_" + std::to_string(i);
        std::ifstream fin;
        for(int j = 0;; j++)
        {
            fin.open(str + "_" + std::to_string(j) + ".txt");
            if(!fin.is_open())
                break;
            std::cout << "\n" << str + "_" + std::to_string(j) + ".txt" << "\n";
            stdcout(fin);//çäåñü âñòàâüòå ñâîþ ôóíêöèþ ÷òåíèÿ èç ôàéëà
            fin.close();
        }
    }
    std::cin.get();
}
вот так можно, если файлы идут по возрастающей без разрывов в цепочке и если первый индекс - цифра.
0
0 / 0 / 1
Регистрация: 05.09.2016
Сообщений: 56
09.08.2022, 15:41  [ТС]
В названиях файлов - числа, понятно же это.. описка
количество файлов - произвольное
0
 Аватар для SomniPhobia
602 / 439 / 137
Регистрация: 22.11.2017
Сообщений: 1,407
10.08.2022, 08:14
mariellla, используй из C++17 библиотеку filesystem, а именно функцию directory_iterator()
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <filesystem>
 
int main()
{
    const std::filesystem::path sandbox{"sandbox"};
 
    std::cout << "directory_iterator:\n";
    for (auto const& dir_entry : std::filesystem::directory_iterator{sandbox}) 
    {
        std::cout << dir_entry.path() << '\n';
    }
 
    return 0;
}
Добавлено через 1 минуту
sandbox - имя папки, в которой хотим узнать содержимое: внутренние файлы и папки

Добавлено через 12 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
namespace fs = std::filesystem;
 
std::vector<fs::path> get_items_from_dir(const fs::path &path_to_dir, const std::string &templ)
{
    std::vector<fs::path> items;
    for(const directory_entry &dir_entry : fs::directory_iterator(path_to_dir))
    {
        const fs::path item = dir_entry.path();
        const std::string str_item = item.string();
        if(str_item.find(templ) != std::string::npos)
        {
            items.push_back(item);
        }
    }
    return items;
}
Где
path_to_dir
- путь к рассматриваемой папке
templ
- искомый шаблон имени. В данной задачи это "InputData_"
Представленная функция возвращает набор путей к файлам и папкам в директории path_to_dir, содержащим в имени templ

Добавлено через 36 секунд
Писал без отладки. Проверь код
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.08.2022, 08:14
Помогаю со студенческими работами здесь

Как прочитать данные из двух файлов Excel?
Всем привет) Ребята, нужна ваша помощь! Есть два файла excel, у каждого файла есть две колонки мне надо считать данные из обеих файлов и...

Прочитать данные из многоуровневой вложенной структуры файлов с разными разделителями
Подскажите пожалуйста с чего начать, установил python 2.7, скачал sqlite3, задача такая: есть папка Price и в ней лежат другие папки с...

Прочитать данные из нескольких файлов и записать результаты в последний файл
Нужно создать рабочую структуру, которая принимает список имен файлов из командной строки. Она открывает каждый файл, за исключением...

Прочитать данные из файлов и создать файл в виде сложения словарей в массив
Помогите, пожалуйста, с задачкой: 1. Скачать файлы: https://github.com/konflic/front_example/blob/master/data/books.csv и...

В определенной директории, прочитать все имена файлов и создать папки, с названиями этих файлов
В общем Моя задача, в определенной директории, прочитать все имена файлов и создать папки, с названиями этих файлов. Вот код: namespace...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru