ページ 1 / 1
DxLibでの文字列変数
Posted: 2009年8月24日(月) 18:10
by usami
とても初歩的な質問なのですが、
文字列を格納する便利な変数とかないのですか?
(『”~”』を格納できる変数)
教えてください。
たとえばプログラムとしてはこんな感じ?
#define STRING "こんにちは"
型(←ここ) str;
//char str; だと、文字列の長さの関係で、不具合があるっぽいです。
int color=GetColor(255,255,255);
DrawString(0, 0, str, color);
あるいはDxLibの関数で、
LPCTSTR型を使ったりするのでも、構いません。
Windowsプログラミングだと、フォントとかHDCとか面倒なので、
是非楽ちんがしたいのです。
その他、冴えた方法があれば、是非教えてください。
Re:DxLibでの文字列変数
Posted: 2009年8月24日(月) 18:30
by チルチル
char *型でどうでしょうか?
Re:DxLibでの文字列変数
Posted: 2009年8月24日(月) 18:33
by usami
ありがとうございます。
うまくいきました。
char* str=STRING;
是非また教えてください。
Re:DxLibでの文字列変数
Posted: 2009年8月24日(月) 18:40
by チルチル
でも冷静に考えたら、これはscanf関数とかには使えないかもしれません・・
Re:DxLibでの文字列変数
Posted: 2009年8月24日(月) 18:51
by バグ
std::stringでは駄目なのかな?(^_^;)
Re:DxLibでの文字列変数
Posted: 2009年8月24日(月) 18:56
by usami
…ですか。
でも、とりあえず、現状では、計算結果などを扱う文字列としてでなく、
単純に画面に表示することが目的なので無問題です。
変数に格納できたら、ケース分岐とかで、いろんなところが楽ちんかなー、とか考えていただけなので。
Re:DxLibでの文字列変数
Posted: 2009年8月24日(月) 19:04
by usami
> std::stringでは駄目なのかな?(^_^;)
C++は勉強不足でよくわからないです。すいません。
どういう風に使うのか詳しく教えていただけたらと思います。
あと、さきの回答が遅れたためちぐはぐになっております、見苦しくてすいません。
Re:DxLibでの文字列変数
Posted: 2009年8月24日(月) 21:34
by バグ
std::stringの簡単なサンプルを書いてみました。
慣れるまでは分かりづらいかもしれませんが、便利ですよ。
#include <cstdio>
#include <iostream>
#include <string>
int main(void)
{
// strを"01234"で初期化する
std::string str("01234");
// strをcoutを使用して表示
std::cout << str << std::endl;
// strをprintfを使用して表示
// c_str()関数を使用すると、std::string内の文字列へのポインタ(const char*型)を取得できる
printf("%s\n", str.c_str());
// strの最後尾へ文字列"56"を付け足す
str += "56";
std::cout << str << std::endl;
// 比較用文字列を用意する
std::string cmp("0123456");
// 2つの文字列を比較してみる
if (str == cmp)
{
std::cout << "同じです" << std::endl;
}
else
{
std::cout << "違います" << std::endl;
}
return 0;
}
Re:DxLibでの文字列変数
Posted: 2009年8月24日(月) 23:45
by usami
丁寧な回答ありがとうございます。
とてもわかりやすかったです。
現状、DxLib=C,Windowsプログラミングをメインにしているので、
なかなかC++までは手が届かないのですが、
今後の参考にさせていただきたいと思います。