繁体   English   中英

如何使用C ++和PDCurses显示变量字符串?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM