错误:ISO C++禁止从字符串常量转换为char*

Sam*_*nha 0 c++ codeblocks

所以,我有一个程序使用图形模式[ graphics.h]库...我想初始化图形,所以我会这样做,所以自然地这样做:

initgraph(graphics_driver,graphics_mode,"") ;
Run Code Online (Sandbox Code Playgroud)

当我编译上面的代码时,它会给出错误"ISO C++禁止将字符串常量转换为char*"

我知道一个解决方法:

char c_array[] = "" ; 
initgraph(graphics_driver,graphics_mode,c_array) ;
Run Code Online (Sandbox Code Playgroud)

上面编译得很好......这对于像...这样的函数是可以的initgraph(),因为我只会调用一次.但是,我想使用这样的outtextxy()函数(因为我在我的程序中多次调用它):

outtextxy(0,0,"Test") ;
Run Code Online (Sandbox Code Playgroud)

因为为所有不同的outtextxy()函数声明一个数组只会浪费空间.

那么,有没有办法使用上面没有数组或任何额外的变量?

PS:我在安装graphics.h库并配置所有链接器选项后使用代码块.等等...

谢谢,再见,塞缪尔

Lig*_*ica 6

graphics.h您引用的文件非常古老.

它太老了,它早于它const.

二十年来,字符串文字一直存在const char[N].从那以后,它被弃用以假装它们是char[N]相反的.从C++ 11开始,它就是非法的.从旧的const日子开始迁移代码已经有十三年了,而且还有七年了.

您必须解决此破解喜欢你现在(复制字符串文字到会,是可变的缓冲,即使它不会被变异了!),破解它周围有一个const_cast(是非常肯定的说法会不会虽然改变了!),或者使用这个千年的图书馆.