首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SPIFFS将return键保存为字符串

SPIFFS将return键保存为字符串
EN

Stack Overflow用户
提问于 2021-03-24 16:00:15
回答 1查看 48关注 0票数 1

当在我的ESP32上逐行读取.txt文件时,它也保存了返回键,有什么方法可以防止这种情况发生吗?

读取函数:

代码语言:javascript
复制
String line_one, line_two;

void readfiles() {
  char buffer[64];
  int i = 0;

  File file0 = SPIFFS.open("/0.txt", "r");
  while (file0.available()) {
   int l = file0.readBytesUntil('\n', buffer, sizeof(buffer));
   buffer[l] = 0;
   if (i == 0) {
    line_one = buffer;
   }
   if (i == 1) {
    line_two = buffer;
   }
   i++;
   if (i == 2){
    break;
   }  
  }
  file0.close();
} 

我的0.txt的内容:

代码语言:javascript
复制
2020-01-01
2021-03-16

我想在网页上使用“字符串处理器”来显示它们:

代码语言:javascript
复制
String processor(const String& var){
  //JUST FOR EDIT
  if(var == "LINE_ONE"){
    return line_one;
  }
  else if(var == "LINE_TWO"){
    return line_two;
  }

网页:

代码语言:javascript
复制
<form action="/get">
  Date 1: <br><input type="date" name="1_input" id="1_input" value="%LINE_ONE%"><br><br>
  Date 2: <br><input type="date" name="2_input" id="2_input" value="%LINE_TWO%"><br><br><br>
  <input type="submit" value="Submit">
</form>

我预计它会设置日期,但它所做的是在%LINE_ONE%之后在我的代码中返回,这样html页面就无法显示日期。第二行起作用,因为它是最后一行,没有不可见的return键。

这里你可以明白我的意思:

来自德国的感谢和问候!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-24 17:11:19

我自己找到了答案。它与“回车符”(/r)和“换行符”(/n)有关。

Windows记事本在一行末尾执行CR,然后执行LF,因此我通过使用notepad++删除LF并更改代码中的一行来解决此错误。

从这个开始:

代码语言:javascript
复制
int l = file0.readBytesUntil('\n', buffer, sizeof(buffer));

要这样做:

代码语言:javascript
复制
int l = file0.readBytesUntil('\r', buffer, sizeof(buffer));

(如果我删除CR my ESP32 crash on boot:“大师冥想错误:核心1死机(LoadProhibited)。异常未处理。”)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66776910

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档