Как я могу отобразить переменные строки, используя C ++ и PDCurses? - PullRequest
0 голосов
/ 29 января 2010

Мне очень жаль публиковать такой неловко новый вопрос для новичка, но я не особо разбирался с C ++ с тех пор, как я учился в колледже, и я думаю, что в какой-то момент я выпил все, что знал о указателях и строках C ++, прямо из моя голова. По сути, я создаю консольное приложение C ++ (точнее roguelike) с PDCurses для обработки вывода. Я хочу отображать динамические строки (что, я думаю, было бы очень полезно в динамической игре, хе), но 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();

Конечно, это дает мне ошибку "Недопустимое преобразование из const char*' to char * '" в определении char * pvers. Я знаю, что я делаю что-то действительно нагло, глупо неправильно, но я действительно ржав на этом. Любая помощь будет очень полезна.

Ответы [ 2 ]

2 голосов
/ 29 января 2010

Асвейкау прав, но я нашел другую возможность, просмотрев документацию по ncurses - я всегда мог просто mvprintw(col, row, "v. %d.%d.%d", maj_vers,min_vers,patch_vers) получить тот же эффект.

2 голосов
/ 29 января 2010

Просто объявите pvers как:

const char *pvers = vers.c_str();

Это const означает, что вы не собираетесь изменять память, на которую указывает pvers.Это действительно больше подсказка, так что компилятор может кричать на вас, если вы нарушите это предположение.(Вот почему вы получили предупреждение от компилятора.) Вы можете начать видеть что-то забавное, если вы используете pvers после изменения vers за пределами этой строки, но для отправленного вами фрагмента я не вижу этой проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...