使用Arduino将String转换为const-char*类型
convert String to type const char* using 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);
StringToCharArray
或StringGetBytes
怎么样?
相关文章:
- 需要帮助在 c++ 中将字符串转换为字符 ----错误 "const char *" 类型的值不能用于初始化 "char" 类型的实体
- 无法使用类型 'const char *' 的左值初始化类型 'char *' 的成员子对象
- 类型"int"和"const char [15]"到二进制"运算符<<"的无效操作数^
- C++ 类型 "char" 的参数与类型 "const char" 的参数不兼容
- 在这种情况下,如何从类型 "const char*" 初始化字段?
- 错误:二进制">>":未找到采用类型为"const char [1] 的右操作数的运算符
- 不能将 "const char*" 类型的值分配给类型 "int" 的实体
- 不能将 "const char *" 类型的值分配给类型为 "LPSTR" 的实体
- 如何从const char *类型字符串中删除新线字符
- 错误:“ const char*”类型的操作数和“ const char [7]”类型为二进制“操作员 ”
- MKDIR 在 C++ 系统调用中失败 - int 类型的参数与 const char* 类型的参数不兼容
- C++:将const char*类型的字符串文本传递给字符串参数
- 使用Arduino将String转换为const-char*类型
- 不能将 "const char *" 类型的值分配给类型 "char" C OOP 的实体
- 如何复制const char*类型变量的内容
- const*char类型中的返回值在获得值时立即被取消引用
- 二进制'operator<<' 'const char [6]'和'const char [3]'类型的无效操作数
- C++二进制'operator+' 'const char*'和'const char [2]'类型的无效操作数
- 错误:在 C++ 中从 'const char [5]' 类型转换为非标量类型
- 从类型 'const char*&' 的右值初始化 'const char *' 类型的非常量引用无效