不存在从 std 字符串到 const char * 的合适转换函数

Posted

技术标签:

【中文标题】不存在从 std 字符串到 const char * 的合适转换函数【英文标题】:No suitable conversion function from std string to const char * exists 【发布时间】:2015-12-21 21:54:11 【问题描述】:

我正在使用预构建的库,为了让我加载纹理并显示它,我必须使用此代码。我正在寻找加载多个文件并将它们作为struct 存储在一个数组中,以便可以调用和显示它们。我不断收到此错误:

不存在从std string 到 const char * 的合适转换函数

尝试在下面的部分中加载时。

for (int i=0; i<CUTSCENE; i++)

    stringstream s;
    int fileNum = i+1;

    string FirstPart = "Textures/GameVideos/Game (";
    string LastPart = ").png";

    s << FirstPart << fileNum << LastPart << endl;
    string fullfileName;
    s >> fullfileName;

    cutSceneMain[i]->texture = new Texture2D();
    cutSceneMain[i]->texture->Load(fullfileName, false);
    cutSceneMain[i]->sourceRect = new Rect(0.0f, 0.0f, 700, 700);
    cutSceneMain[i]->position = new Vector2(0.0f, 0.0f());

【问题讨论】:

【参考方案1】:

问题很可能与您调用Load 的方式有关,解决方法是使用fullfileName.c_str()

cutSceneMain[i]->texture->Load(fullfileName.c_str(), false);
                                            ^^^^^^^

Load 需要const char*

【讨论】:

以上是关于不存在从 std 字符串到 const char * 的合适转换函数的主要内容,如果未能解决你的问题,请参考以下文章

C++标准库 如何连接两个const char *类型字符串,并返回const char * 类型结果?

VS2017出现不存在从"CString"到"const char*"的适当转换函数

VS2017中遇到不存在从string到const char*的转换函数的解决方法

将字符串从 std::string 转换为 const char * 时出现数据丢失问题

如何将数组和输出转移到 ofstream 写入?

您可以从`volatile const char *`构造一个字符串吗? (不使用`const_cast`)