Arduino打开SD文件名为字符串
Arduino opening SD filename as string
我试图打开一个文件,我计算成一个字符串的名称。然而,它只是给我编译错误,如图所示。
for(int i=1;;i++)
{
String temp = "data";
temp.concat(i);
temp.concat(".csv");
if(!SD.exists(temp))//no matching function for call to sdclass::exists(String&)
{
datur = SD.open(temp,FILE_WRITE);
}
}
我是一个java人,所以我不明白为什么这不起作用。我尝试了一些字符串对象的方法,但似乎没有工作。我在arduino编程有点新,但我更了解java。这个for循环的目的是在每次arduino重新启动时生成一个新文件。
SD.open
期望字符数组而不是String
,您需要首先使用toCharArray
方法转换它。试着
char filename[temp.length()+1];
temp.toCharArray(filename, sizeof(filename));
if(!SD.exists(filename)) {
...
}
完成代码:
for(int i=1;;i++)
{
String temp = "data";
temp.concat(i);
temp.concat(".csv");
char filename[temp.length()+1];
temp.toCharArray(filename, sizeof(filename));
if(!SD.exists(filename))
{
datur = SD.open(filename,FILE_WRITE);
break;
}
}
您将发现许多函数接受字符数组而不是字符串。
相关文章:
- 如何在目录及其子文件夹中构建文件名字符串向量?
- 无法创建栅格堆栈,因为我无法连接字符串(dir_name + 文件名)
- 无法打开存储在字符串C++中的文件名
- 字符串作为文件名
- C++搜索文件名指针指向字符串 strcmp 错误
- 使用文件名作为字符串从任意souce .cpp文件中调用函数
- C++ GetModule文件名不会返回正确的字符串
- 使用字符串缓冲区文件名更改OFStream的目录
- 来自其他字符串的输出文件名
- 如何在 tchar 中添加格式化字符串(用于多个文件名等)
- Cpp 预处理器和文件名的基本名称,行号为字符串
- 为什么 fstream.open(文件名) 适用于文字而不是生成的字符串?
- 使用字符串将文件名传递给 fstream
- gengetopt:如何解析没有选项(如文件名)的字符串
- 在cpp中串联字符串和int作为文件名
- 7zip 字符串/流压缩 PHP/C?存档中没有文件名/日期存储.7z每个字节都很重要
- 将文件名转换为c字符串
- c++将文件的路径组合为字符串和文件名
- 适用于短文件名的最佳字符串哈希函数
- 我可以在 fstream 中使用字符串变量作为文件名吗?C++