C++ 尝试使用winbgi显示文本时出现编译器错误

C++ 尝试使用winbgi显示文本时出现编译器错误,c++,string,winbgi,C++,String,Winbgi,您好,我有一个字符串,我想在winbgi窗口上使用outtextxy显示它。 问题是outtextxy只接受显示编译器错误的字符数组指针。 这是密码 for(int i=0;i<13;i++){ setcolor(RED); circle(otab[i].x1,otab[i].y1,otab[i].radius); string txt="obs"; txt.append(1,i); outtextxy(ota

您好,我有一个字符串,我想在winbgi窗口上使用outtextxy显示它。 问题是outtextxy只接受显示编译器错误的字符数组指针。 这是密码

for(int i=0;i<13;i++){
        setcolor(RED);
        circle(otab[i].x1,otab[i].y1,otab[i].radius);
        string txt="obs";
        txt.append(1,i);
        outtextxy(otab[i].x1,otab[i].y1,txt);
}


for(int i=0;i如果字符串是std::string,则使用txt.c_str()


谢谢大家的回答。 这是更新后的代码

    for(int i=0;i<13;i++){
        setcolor(RED);
        circle(otab[i].x1,otab[i].y1,otab[i].radius);
        string txt="obs:";
        std::ostringstream oss;//i used ostringstream because append didn't work properly
        oss << txt << i;
        string pl=oss.str(); 
        outtextxy(otab[i].x1,otab[i].y1,(char*)pl.c_str());
    }


for(int i=0;iit给出错误“无法将参数'3'的'std::string{aka std::basic_string}'转换为'char*'”以'void outtextxy(int,int,char*)”可能是因为outtextxy需要一个char*而不是const char*,如果outtextxy不修改文本,请让该函数的开发人员将const char*作为输入,否则需要将字符串复制到char*@AidenFive--
outtextxy
源于C程序员不太关心的旧时代关于
const
正确性。在这种情况下,可以将返回值强制转换为
char*
outtextxy(x,y,(char*)txt.c_str())
。不要将这种强制转换作为一种习惯。