C++ 正在尝试使用libcurl将文件下载到appdata目录

C++ 正在尝试使用libcurl将文件下载到appdata目录,c++,curl,libcurl,C++,Curl,Libcurl,我正在尝试从url下载一个zip文件,并将其保存在appdata目录中。 我能够获得appdata目录。唯一的问题是getenv(“APPDATA”)函数只输出char*或std::string,但outfilename[FILENAME\u MAX]只取char。下面是我的代码,我已经准确地注释了我的错误,以便更容易看到 我正在寻求解决这个问题的办法。谢谢你的时间 另外,我愿意接受任何可能达到我最终目标的建议,即将文件下载到appdata文件夹。如果有一种方法不使用curl,那对我来说没问题:

我正在尝试从url下载一个zip文件,并将其保存在appdata目录中。 我能够获得appdata目录。唯一的问题是
getenv(“APPDATA”)
函数只输出
char*
std::string
,但
outfilename[FILENAME\u MAX]
只取
char
。下面是我的代码,我已经准确地注释了我的错误,以便更容易看到

我正在寻求解决这个问题的办法。谢谢你的时间

另外,我愿意接受任何可能达到我最终目标的建议,即将文件下载到appdata文件夹。如果有一种方法不使用curl,那对我来说没问题:)


这解决了我的问题。感谢@Hasturkun。我只是用这个替换了代码的上半部分,并完全删除了
char outfilename[FILENAME\u MAX]=appdata代码中的较低位置

char outfilename[FILENAME_MAX];
    char* appdata = getenv("APPDATA");
    strcat(appdata, "\\zip to save.zip");
        printf("Appdata: %s\n", appdata); 
        strcpy(outfilename, appdata);
char outfilename[FILENAME_MAX];
    char* appdata = getenv("APPDATA");
    strcat(appdata, "\\zip to save.zip");
        printf("Appdata: %s\n", appdata); 
        strcpy(outfilename, appdata);

你正在做一些你可能不应该做的事情。首先,直接修改从
getenv()
返回的字符串(您应该将其复制到缓冲区)。第二个是尝试将字符指针分配给数组(这将不起作用。请使用
strcpy
等)您能告诉我如何使用代码进行更改吗?尝试了此操作,但仍然不起作用
char-appdata2
strcpy(appdata2,appdata)
您已经有一个字符数组,
outfilename
。在函数中向上移动它并使用它。@Hasturkun感谢它解决了这个问题。我将使用solutionAgain编辑我的帖子,不要直接修改从
getenv
返回的字符串。您可以将其strcp复制到
outfilename
strcat
中,并将其余部分复制到同一位置。
char outfilename[FILENAME_MAX];
    char* appdata = getenv("APPDATA");
    strcat(appdata, "\\zip to save.zip");
        printf("Appdata: %s\n", appdata); 
        strcpy(outfilename, appdata);