どのように私はC ++とPDCursesを使用して、変数の文字列を表示することができますか?
質問
私は、あきれるほどnewbish質問を投稿することが非常に残念ですが、私は私の大学時代からC ++であまり周りにマックしていないと私は私がポインタとのC ++文字列の右アウトを知っていたことをすべて飲んだいくつかの点で考えます私の頭。基本的に、私は、ハンドル出力にPDCursesとC ++コンソールアプリケーション(ローグライク、正確には)を作成しています。私は私にエラーを投げ続ける)((Iフィギュアがあわや、ダイナミックなゲームではかなり有用であろうことを何か)が、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
手段。あなたはこの仮定を破る場合、コンパイラはあなたに叫ぶことができるようにそれは本当に多くのヒントのです。 (あなたは、コンパイラの警告を得た理由である。)あなたはこの線を越えpvers
を変更した後vers
を使用する場合は、何かのファンキーを見始めるかもしれないが、スニペットのために、私はその問題を見ない掲示ます。
他のヒント
Asveikauは右ですが、私はいくつかのncursesのドキュメントを検索して別のオプションを発見した - 。私はいつもちょうど同じ効果をmvprintw(col, row, "v. %d.%d.%d", maj_vers,min_vers,patch_vers)
ことができます。