c++ - 在 Arduino ide 中读取多个文本文件

标签 c++ arduino arduino-esp32 spiffs

我有包含 n 个 txt 文件的文件夹(文件具有数值)我需要读取这些文件并将文件包含在数组中。如何读取数组中第一个file1的内容然后清除数组,然后读取同一个数组中的第二个file2等等?

#include "SPIFFS.h"
void setup() {
  Serial.begin(115200);
 float *arr=(float*)malloc(1000*sizeof(float));
  if (!SPIFFS.begin(true)) {
    Serial.println("An Error has occurred while mounting SPIFFS");
    return;
  } 
  File root = SPIFFS.open("/");
  File file = root.openNextFile();
  while(file){
    for(int i=0;i<1000;i++){
        arr[i] = file.parseFloat();
        Serial.println(arr[i]);}
      //Serial.println(file.name());
       //file = root.openNextFile();
  }
}
 
void loop() {}

最佳答案

你可以做类似的事情。尽管您需要检查 parseFloat() 在未检测到浮点值时的正确行为,即它实际返回的值。

while(file) {
    int length = readFile(arr, file);
    file.close();
    handleArray(arr, length);
    file = root.openNextFile();
}

...

int readFile(float *arr, File f) {
    int i = 0;
    float val = 0.0;
    val = f.parseFloat();   // returns 0.0 when no float was found?
    while (val > 0.0) {
        arr[i++] = val;
        val = f.parseFloat();
    }
    return i;
}

关于c++ - 在 Arduino ide 中读取多个文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70677792/

相关文章:

c++ - 为什么这个按位运算是 "narrowing conversion from ' int' 到 'byte'“? - Arduino

arduino - boot_app0.bin 和 bootloader_dio_80m.bin 文件有什么用? (ESP32-Arduino 集成开发环境)

c++ - 获取[e][wifigeneric.cpp :739] hostbyname(): dns failed when performing POST request

arduino - 在 ESP32 sketch 中隐藏 ssid 密码的选项

c++ - 如何快速计算任何底数的整数对数?

c++ - 向上转换和传递动态数组(C++)

c++ - 这个指针的使用

python - 如何在 Python 中从整数创建字节值?

python - 用 Arduino 和 pySerial 闪烁 LED

c++ - 模板问题