2016-12-14 2 views
0

私はプログラム書き込みで初心者だと私はSDL_TTFによって呼び出される関数のために問題を抱えてきた:SDL_TTFについて(Cプログラミング)

SDL_Surfaceに* TTF_RenderText_Solid(TTF_Font *フォント、constのchar型*テキスト、SDL_ColorのFG);

これでテキストを含むサーフェスを作成できますが、問題は第2パラメータに数値を送信する必要があることです。 2番目のパラメータはchar変数のみを受け入れますが、私の変数はint型です...

int変数をchar変数に格納する方法はありませんか?または2番目のパラメータをタイプする方法それはint変数を受け入れますか? huh ..

+1

[標準Cでのint型の文字列への変換](英語の可能性あり)http://stackoverflow.com/questions/36274902/convert-int-to-string-in-standard-c –

答えて

0

Cでは、整数(または他の数値書式)をテキストに自動的に変換することはできません。明示的に行う必要があります。 「の#include」ではない直前、ファイルの先頭にあるべきこと

#include <stdlib.h> 

SDL_Surface* MyRenderInteger_Solid(TTF_Font* font, int value, SDL_Color fg) 
{ 
    char numBuffer[20]; 
    itoa(value, numBuffer, 10); /* convert value to decimal string */ 
    return TTF_RenderText_Solid(font, numBuffer, fg); 
} 

注:

たとえば、あなたは、変換を行い、SDLライブラリコールを呼び出すラッパー関数を書くことができます関数を定義します(関数がソースファイルの最上部にある場合を除きます)。

+0

"itoa()"が表示されています非標準的な関数として、しかしそれがないCランタイムライブラリはほとんどありません。数値文字列を含むバッファのアドレスを返すので、 "TTF_RenderText_Solid()"の呼び出しで "itoa()"の戻り値を直接使用することでコードを短縮できます。 – Daniel

+0

あなたのライブラリで "itoa()"が見つからない場合は、次の例のように置き換えてください: 'snprintf(numBuffer、sizeof numBuffer、"%d "、value);' – Daniel

関連する問題