Arduino将值从file.read()转换为const char*
我知道有很多关于变量转换的话题,但是我在不同的论坛上花了2个多小时,我没有找到解决问题的方法 我有一个代码,它将读取ESP32上的SPIFFS文件,并将其写入串行监视器。(这里是许多网站提供的示例代码) 但是现在我如何才能将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){
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一起使用了!谢谢