C++ 创建文件路径时遇到问题

C++ 创建文件路径时遇到问题,c++,C++,我试图用for循环从一个目录加载多个文件,但我不断得到访问冲突和非常奇怪的路径字符串 下面是我在path变量中得到的内容: data/ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ

我试图用for循环从一个目录加载多个文件,但我不断得到访问冲突和非常奇怪的路径字符串

下面是我在path变量中得到的内容:

data/ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ0ùB
下面是生成该路径的代码:

Animation::Animation(std::string name, int framecount)
{
    char path[MAX_PATH];
    char *ext = ".bmp";
    frames = new SDL_Surface*[framecount];
    for (int k = 0; k < framecount; k++) {
        frames[k] = NULL;
        sprintf(path, "data/%s/f%i%s", name, k, ext);
        SDL_Surface *img = load_image(path);
        memset(&path[0], 0, sizeof(path)); // Clear tmp
    }

    maxFrames = framecount;
    currentFrame = 0;
}
Animation::Animation(std::string name,int framecount)
{
字符路径[最大路径];
char*ext=“.bmp”;
帧=新SDL_曲面*[framecount];
对于(int k=0;k

我做错了什么

您在
name

sprintf(path, "data/%s/f%i%s", name.c_str(), k, ext);

使用
snprintf
而不是
sprintf
来避免缓冲区溢出。另外,
memset
没有任何用处,因为您用下一个
sprintf
覆盖它。