c++ - 如何使用 C++ 和 PDCurses 显示可变字符串?

标签 c++ string pointers char pdcurses

我非常抱歉发布这样一个令人尴尬的新问题,但自从我大学时代以来我就没有太多地接触过 C++,我想在某个时候我把我所知道的关于指针和 C++ 字符串的所有知识都喝光了我的头。基本上,我正在使用 PDCurses 创建一个 C++ 控制台应用程序(准确地说是一个 roguelike)来处理输出。我想显示动态字符串(我认为这在动态游戏中会非常有用,呵呵)但是 mvaddstr() 一直向我抛出错误。这是我正在尝试做的一个例子:

 string vers = "v. ";
 vers += maj_vers;// + 48;
 vers += ".";
 vers += min_vers;// + 48;
 vers += ".";
 vers += patch_vers;// + 48;
 char *pvers = vers.c_str();
 mvaddstr(5,17, pvers);
 refresh();

当然,这会给我一个关于 char *pvers 定义的“从 const char*' 到 char*' 的无效转换”错误。我知道我正在做一些非常厚颜无耻的事情,在这里犯了愚蠢的错误,但我真的生疏了。任何帮助都会非常有帮助。

最佳答案

只需将 pvers 声明为:

const char *pvers = vers.c_str();

这个const 意味着您不会修改pvers 指向的内存。这实际上更像是一个提示,如果你打破这个假设,编译器可以对你大喊大叫。 (这就是你收到编译器警告的原因。)如果你在更改 vers 超出此行后使用 pvers ,你可能会开始看到一些奇怪的东西,但对于你发布的片段我没有看到那个问题。

关于c++ - 如何使用 C++ 和 PDCurses 显示可变字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2163853/

相关文章:

c - C 中的简单链表函数

c++ - valgrind 中函数指针的读取大小无效

c++ - 将表示二进制的字符串转换为表示等效十六进制的字符串

c - 玩转指针,被 char * 字符串弄得晕头转向

c++ - 为什么要有指针参数?

swift - 从任何 UTF-16 偏移量中,找到位于字符边界上的相应 String.Index

c++ - 在 C++ 中返回 unique() 函数

android - cocos2d-x 如何让部分图层在移动到屏幕的某个部分时消失

java - 格式化字符串的最简单方法,如 1 000 000

mysql - mysql 中计算字符串形式的列名