Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arduino将值从file.read()转换为const char*_Arduino_Char_Int_Spiffs - Fatal编程技术网

Arduino将值从file.read()转换为const char*

Arduino将值从file.read()转换为const char*,arduino,char,int,spiffs,Arduino,Char,Int,Spiffs,我知道有很多关于变量转换的话题,但是我在不同的论坛上花了2个多小时,我没有找到解决问题的方法 我有一个代码,它将读取ESP32上的SPIFFS文件,并将其写入串行监视器。(这里是许多网站提供的示例代码) 但是现在我如何才能将file.read()的值发送到const char*我确实需要这种格式,因为函数将接收值 我的代码: const char* VALUE = ""; File file = SPIFFS.open("/test.txt"); if(!file){

我知道有很多关于变量转换的话题,但是我在不同的论坛上花了2个多小时,我没有找到解决问题的方法

我有一个代码,它将读取ESP32上的SPIFFS文件,并将其写入串行监视器。(这里是许多网站提供的示例代码)

但是现在我如何才能将
file.read()
的值发送到
const char*
我确实需要这种格式,因为函数将接收值

我的代码:

const char* VALUE     = "";

File file = SPIFFS.open("/test.txt");
      if(!file){
          Serial.println("Failed to open file for reading");
          return;
      }

      while(file.available()){
        Serial.write(file.read());
        VALUE = file.read();
      }
      file.close();
此结果为:
从int到const char的转换无效*

请尝试以下操作:

char VALUE [512] = {'\0'};  // 511 chars and the end terminator if needed make larger/smaller

File file = SPIFFS.open("/test.txt");
  if(!file){
      Serial.println("Failed to open file for reading");
      return;
  }
  uint16_t i = 0;
  while(file.available()){
     VALUE [i] = file.read();
     // Serial.print (VALUE [i]); //use for debug
     i++;
  }
  VALUE [i] ='\0';
  // Serial.print (VALUE); //use for debug
  file.close();

这会将文件内容复制到一个char数组中,然后用于进一步的处理。如果字符数组是全局定义的,则编译为闪存并防止内存碎片

值为常量字符*常量部分表示“常量”,以防不明显。常量意味着一旦它已经有了值,就不能给它赋值。在代码中,您已经为其分配了值“”,一个空字符串。您现在无法在运行时返回并给它一个不同的值。您试图将值发送到哪个函数?也许我们应该看看这个。我打赌您需要做的是将值从串行读取到一个字符数组中,然后使用字符数组。但是没有看到其余的代码,这只是猜测。哦,是的!这工作做得很好!我以前从未在Arduino中使用过数组,现在我知道如何将它与char一起使用了!谢谢