gpt4 book ai didi

c++ - 如何将 const char 与 char 数组连接起来?

转载 作者:行者123 更新时间:2023-12-03 08:16:01 27 4
gpt4 key购买 nike

数组本身保存在

char filestring[9];

并通过

初始化
snprintf_P(filestring,
sizeof(filestring),
PSTR("%04u%02u%02u"),
dt.Year(),
dt.Month(),
dt.Day());

如何像示例中那样连接以上所有内容? (将斜杠和 .txt 扩展名添加到文件字符串变量中)

File file = SD.open("/" + filestring + ".txt", FILE_APPEND);

对于上面的示例,我收到以下误导性错误。

expression must have integral or unscoped enum type

最佳答案

也许是这样的:

char filename[MAX_PATH] = {0};
int n = snprintf(filename, sizeof(filename), "/%s.txt", filestring);
// check whether snprintf succeeded
if (n > 0 && n < sizeof(filename)) {
File file = SD.open(filename, FILE_APPEND);
}

更新:根据用户的要求,我正在添加关于 MAX_PATH 的说明。 :

线路

char filename[MAX_PATH] = {0};

定义大小为 MAX_PATH 的字符数组。这可以使用您认为适合您的程序的任何整数值,但是使用 MAX_PATH确保缓冲区可以保存任何文件名。

在 Linux 上,您必须 #include <limits.h> (或者您可以 #include <stdio.h> 并使用 FILENAME_MAX )。我不是 Windows 用户,但看起来你必须 #include <stdlib.h>导入MAX_PATH (doc)。

当然你也可以初始化filestring一次性使用所需的格式:

char filestring[MAX_PATH];
snprintf_P(filestring,
sizeof(filestring),
PSTR("/%04u%02u%02u.txt"),
dt.Year(),
dt.Month(),
dt.Day());

关于c++ - 如何将 const char 与 char 数组连接起来?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69367710/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com