您好,我正在使用帶有adafruit盾牌的Arduino UNO來顯示分數值,但用於顯示分數的函數只接受char *值,分數本身可以佔用多達6個數字(000,000至999,999)。我曾嘗試使用衝刺(),但我沒有運氣,因爲屏幕會閃爍像瘋了似的。我相信問題是chars只能保存一定數量的字節,不能適應32位int,但我認爲他們是解決這個問題的方法。繪製文本是盾牌用來在屏幕上繪製輸入爲char *,顏色代碼,大小,x像素,y像素的函數。如果有人可以請幫我轉換這兩種類型請讓我知道。如果他們是替代品,也會幫助我。我如何將uint32_t轉換爲char *類型
我的代碼:
char* textToWrite;
uint32_t currentScore = 0;
uint32_t highScore = 0;
highScore = currentScore;
sprintf(textToWrite,"%d.%d.%d.%d\0", currentScore);//sprint f not working properly right now
drawText(textToWrite, ST7735_WHITE, 1, 100, 10);
我一直在使用也嘗試:
sprintf(textToWrite,"%u", currentScore);
你確實是分配的'textToWrite'空間,你叫'sprintf'在什麼地方? –
除此之外,您可能想了解按位運算符,例如右移'>>',按位和'&'。 –
你不必添加終結符,'sprintf'會爲你做。 –