当使用%s在我的路径中设置文本时,找不到它

问题描述 投票:0回答:1

我当前正在尝试从多个目录读取,但是当我使用%s设置路径时(已保存所有文件位置的数组),它将不会读取。

SDL_Surface* image = SDL_LoadBMP("D:\\UltimateModManager\\mods\\%s\\.umm\\icon.bmp", currentmod[i - 1]);

它可以在控制台上很好地打印位置,但不会读取我的图像。但是,如果我设置了一条真实的道路,那确实很奇怪。

c path sdl-2 sdl-image
1个回答
1
投票

您似乎误以为字符串中的%s具有某些特殊属性。没有。 %字符只是文字%。您以似乎想要的方式使用它的上下文将其传递给printf,在这里*仍只是字符串中的文字%,但字符串是一个[[format string C0]进行解释以了解期望的参数类型以及如何格式化它们,而不是要自己打印的字符串。

要在这里实现您想要的,您需要使用一个额外的缓冲区数组来构造您的字符串,并使用类似的东西:

printf

然后将snprintf(buf, sizeof buf,
         "D:\\UltimateModManager\\mods\\%s\\.umm\\icon.bmp",
         currentmod[i - 1]);
作为参数传递给buf
© www.soinside.com 2019 - 2024. All rights reserved.