こんにちは私はに奇妙な問題がありsprintf
ます。これが私のコードです:
void draw_number(int number,int height,int xpos,int ypos){
char string_buffer[5]; //5000 is the maximum score, hence 4 characters plus null character equals 5
printf("Number - %i\n",number);
sprintf(string_buffer,"%i",number); //Get string
printf("String - %s\n",string_buffer);
int y_down = ypos + height;
for (int x = 0; x < 5; x++) {
char character = string_buffer[x];
if(character == NULL){ //Blank characters occur at the end of the number from spintf. Testing with NULL works
break;
}
int x_left = xpos+height*x;
int x_right = x_left+height;
GLfloat vertices[] = {x_left,ypos,x_right,ypos,x_left,y_down,x_right,y_down};
rectangle2d(vertices, number_textures[atoi(strcat(&character,"\0"))], full_texture_texcoords);
}
}
そこでのprintf
呼び出しで、番号は正常に印刷され、番号は期待どおりに描画されます。もちろん、それらを取り除くと、出力を表示して比較することはできませんが、数値は正しくレンダリングされません。sprintf
どういうわけか休憩だと思います。
これは。でも発生しNSLog
ます。NSLog
プログラムのどこかに'sを追加すると、関数が壊れたり修正されたりする可能性があります。
一体何が起こっているのですか?
これは、iOS4SDKでObjective-Cを使用しています。
ご回答ありがとうございます。