%dの意味が解りません。

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
べんぞーる

%dの意味が解りません。

#1

投稿記事 by べんぞーる » 8年前

ゲームプログラミングの館の第7章で

#include "DxLib.h"

int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
ChangeWindowMode( TRUE ) ; //ウィンドウモードにする。
if( DxLib_Init() == -1 ) return -1; // DXライブラリ初期化処理 エラーが起きたら終了


int a=10,b=20,White;
White = GetColor( 255 , 255 , 255 ) ; // 白色の値を取得

DrawFormatString( 0, 0, White , "a=%d" , a );//文字列表示
DrawFormatString(100,100, White , "a+b=%d" , a+b);//文字列表示


WaitKey() ; // キーの入力待ち(『WaitKey』を使用)
DxLib_End() ; // DXライブラリ使用の終了処理
return 0 ; // ソフトの終了
}
とあったのですが、
%dの意味が解りません。
どなたか教えていただけたら幸いです。
猫でもわかるC++プログラミングを読んだのですが無い様なので・・・。どなたかお願いします。

アバター
bitter_fox
記事: 607
登録日時: 8年前
住所: 大阪府

Re: %dの意味が解りません。

#2

投稿記事 by bitter_fox » 8年前

べんぞーる さんが書きました: DrawFormatString( 0, 0, White , "a=%d" , a );//文字列表示
DrawFormatString(100,100, White , "a+b=%d" , a+b);//文字列表示
とあったのですが、
%dの意味が解りません。
どなたか教えていただけたら幸いです。
猫でもわかるC++プログラミングを読んだのですが無い様なので・・・。どなたかお願いします。
猫でも分かるプログラミングのC言語の方に書かれてますね(こういった表現のもとはC言語の標準関数のprintfなどの関数からなのでC言語の方に書かれています
http://homepage2.nifty.com/c_lang/intro/no_04.htm
猫でも分かるプログラミング さんが書きました: 次の

printf("a + b = %d\n", a + b);

引用符の中の「%d」は、ここに、"......."以下にある引数をdの形に変換して、表現するよ、という意味です。したがって、%dの所には、変数aとbの和がdの形で入ると思えばよいのです。ちなみにdは、decimal(十進数)の意味です。
扱いが小さいですね・・・

http://www.k-cube.co.jp/wakaba/server/format.html
フォーマット指定子(%なんたら)についてはこのページの方が詳しいです

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 8年前
住所: 東海地方
連絡を取る:

Re: %dの意味が解りません。

#3

投稿記事 by softya(ソフト屋) » 8年前

ゲームプログラミングの館もDXライブラリも基本的にC言語の書き方で書かれているのでC言語の文法を調べないと載っていません。

%dはC言語の書式化文字列やフォーマット指定子と呼ばれるもので、数値を文字列に変えるために使います。
「標準入出力関数(1)」
http://www9.plala.or.jp/sgwr-t/c/sec05.html

C++の知識だけで読めない場合は、下記サイトなどを参考にしてください。
「苦しんで覚えるC言語」
http://9cguide.appspot.com/
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

アバター
Hiragi(GKUTH)
記事: 167
登録日時: 8年前
住所: 大阪府
連絡を取る:

Re: %dの意味が解りません。

#4

投稿記事 by Hiragi(GKUTH) » 8年前

はい
%dとは出力変換指定子といって
その場所に変数の内容を整数で埋め込むという処理をします。

コード:

DrawFormatString( 0, 0, White , "a=%d←(1)" , a←(2) );//文字列表示
(1)の部分で、(2)(変数a)の内容を整数で埋め込みます。
この出力変換指定子はDrawFormatString関数にだけ使えるのではなくて
文字、数値、数字の画面出力関係の関数で使えます。
説明がわかりにくかったら、「出力変換指定子」で調べてみてください。
本当に説明が下手ですいませんでした。
追記:
他にもたくさん言い方がありました;;
すいません
:さらに追記:
フォーラムルールを破ってしまっていたようです・・・
すいませんでした。
さらにもっとわかりやすく説明するべきでしたね・・・
参考サイト
http://9cguide.appspot.com/04-01.html
ポインタ、構造体、配列、文字列などは
苦しんで覚えるC言語 というサイトをお勧めします。
http://9cguide.appspot.com/index.html
だいがくせい!

閉鎖

“C言語何でも質問掲示板” へ戻る