制作文件路径时出现问题

时间:2014-08-24 10:19:38

标签: c++

我正在尝试从带有for循环的目录加载多个文件但是我一直遇到访问冲突和非常奇怪的路径字符串。

以下是我在路径变量中的内容:

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;
}

我做错了什么?

1 个答案:

答案 0 :(得分:3)

c_str()

之后,您遗失了name
sprintf(path, "data/%s/f%i%s", name.c_str(), k, ext);