@IQ6771
Начинающий программист микроконтроллеров

Как построчно записать файл в каждый элемент массива LittleFS?

Здравствуйте!
Хочу записать Файл xxx.txt в массив , но таким способом , чтобы каждая строчка файла присвоилась каждому элементу массива.
У меня получилось вывести построчно , но записать построчно увы не смог , помоги пожалуйста.

//Вывод постирочной файла в сериал порт .
//При нажатии на любую клавишу происходит считывание и затем вывод .

#include <Arduino.h>
#include <LittleFS.h>

void setup()
{
 Serial.begin(115200);
 LittleFS.begin();
}

void loop()
{
while(Serial.available() == 0);
    int x = Serial.read() - '0';
    Serial.println(x);
    File f = LittleFS.open("/xxx.txt","r");
    while(f.available())
    {
            String line = f.readStringUntil('\n');
            Serial.println(line);
            delay(500);
    }
    f.close();
}
  • Вопрос задан
  • 308 просмотров
Решения вопроса 1
@Acaunt
С Ардуино не знаком, но вот как это можно сделать в стиле C++:
Функция чтения
#include <fstream>
#include <vector>

bool read_file(std::string name_file, std::vector<std::string> &arr) {
    // Открываю текстовый файл для чтения
    std::ifstream read;
    read.open(name_file);
    
    // Проверяю открылся ли текстовый файл.
    // Если не открылся, то выхожу из функции с возвратом значения ЛОЖЬ
    if (!read.is_open()) {
        read.close();
        return false;
    }
    
    // Читаю текстовый файл до конца
    while (!read.eof()) {
        // Получаю текстовое значение одной строки в текстовом файле
        std::string str;
        getline(read, str);
        
        // Добавляю полученое текстовое значение в конец вектора
        arr.push_back(str);
    }

    read.close();
    
    // Выход из функции с возвратом значения ИСТИНА
    return true;
}
Пример использования
#include <iostream>
#include <vector>

int main() {
    // Вектор в который будем записывать значения тектового файла
    std::vector<std::string> arr;
    
    // Проверяем получилось ли прочесть текстовый файл
    // Если не получилось выполняем какой-нибудь код
    if (!read_file("C:\\Text.txt", arr)) {
        std::cout << "Fail read file" << std::endl;
    }
    
    return 0;
}
P.S. Если возникнут вопросы пиши
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Kantat
hobby
File f = LittleFS.open("/xxx.txt","r"); // "w"
Serial.println(line); //??
delay(500);// ??
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы