[英]How can I display variable strings using C++ and PDCurses?
我非常遗憾地提出这样一个令人尴尬的新问题,但是自从上大学以来,我对C ++的了解还不多,我想在某个时候我会把我对指针和C ++字符串的所有了解从脑海中浮现出来。 基本上,我正在使用PDCurses创建一个C ++控制台应用程序(准确地说是一个流氓)来处理输出。 我想显示动态字符串(我认为这在动态游戏中会非常有用,呵呵),但是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*' to
char *'的无效转换”错误。 我知道我在这里做的事情真是大胆,愚蠢的错误,但对此我实在感到生锈。 任何帮助都会超级有帮助。
只需将pvers
声明为:
const char *pvers = vers.c_str();
这个const
表示您不会修改pvers
指向的内存。 实际上,它更多地是一个提示,以便您打破这一假设,编译器可以对您大喊大叫。 (这就是为什么收到编译器警告的原因。)如果您在将vers
更改为超出此行后使用pvers
,可能会开始看到一些时髦的东西,但是对于您发布的摘录,我看不到这个问题。
Asveikau是正确的,但是我通过搜索一些ncurses文档找到了另一个选择-我总是可以mvprintw(col, row, "v. %d.%d.%d", maj_vers,min_vers,patch_vers)
达到相同的效果。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.