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