c++ - 使用 Arduino 将字符串转换为类型 const char*

标签 c++ casting arduino

我正在使用 Arduino 库。我想记录一些来自传感器的数据,为其添加日期时间戳并将其写入 SD 卡。

建立文本文件名我试过

    String dataFileName = String(String(sedClock.getTime().year(),DEC) + 
                         String(sedClock.getTime().month(),DEC) + 
                         String(sedClock.getTime().day(),DEC) + 
                         String(sedClock.getTime().hour(),DEC) + 
                         String(sedClock.getTime().minute(),DEC) + 
                         String(sedClock.getTime().second(),DEC) + '_log.txt');

然后我想使用

登录到该文件
      pinMode(SD_PIN,OUTPUT);
      dataFile = SD.open(dataFileName,FILE_WRITE);

但是我明白了

    no matching function call to SDClass::open(String&, int) 
    candidates are: File SDClass::open(const char*,uint_8)

但似乎 Arduino 字符串没有

的等价物
    (const char *) dataFileName.c_str()

所以我不知道如何进行正确的转换

如有任何帮助,我们将不胜感激。

最佳答案

感谢您的帮助。解决方案是

    char __dataFileName[sizeof(dataFileName)];
    dataFileName.toCharArray(__dataFileName, sizeof(__dataFileName));

    pinMode(SD_PIN,OUTPUT);
    dataFile = SD.open(__dataFileName,FILE_WRITE);

关于c++ - 使用 Arduino 将字符串转换为类型 const char*,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11610264/

相关文章:

android - 通过 com 端口通过 USB 将 arduino 连接到 ANDROID 手机

c++ - Arduino Serial.available() 不断增加

c++ - std::unordered_set 构造函数

c++ - 反转链表?

c++ - 可以将 .Net String 交给 fn(const char16_t* str) w/o 复制吗?

使用 char 指针更改 int 值

c# - 如何将对象转换为具有公共(public)无参数构造函数以遵守 : new() constraint?

c++ - 可以使用静态变量来初始化/注册变量吗?

c# - 使用 Type 类型的参数进行转换

c - Arduino伺服功能