gh0*_*0st 3 c printf sizeof strlen pebble-sdk
我正在为Pebble开发,我的开局很艰难.
我正在尝试使用2个字符串和2个值填充text_layer,如下所示:
等待AVG:3 MAX:5
由于mallocPebble SDK不支持,我无法使用sprintf,因此我坚持使用snprintf.以下代码仅打印"4":
srand(time(NULL));
int average = (rand()%6)+1;
int maximum = average + 2;
static char *avgText="WAIT AVG: ";
static char *maxText="MAX: ";
snprintf(labelText,sizeof(avgText) + sizeof(average) + sizeof(maxText) + sizeof(maximum),"%s %d %s %d",avgText,average,maxText,maximum);
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激.我知道我可以创建4个单独的TextLayers,但这对我来说是最后的手段.
Rod*_*ddy 10
你只是snprintf错了.;-)
第二个参数(您试图计算得很严重)是您要打印的字符数组的长度,而不是您尝试编写的字符数.
这样的事情应该有效:
char labelText[64]; // Is this big enough?
snprintf(labelText, 64,"%s %d %s %d",avgText,average,maxText,maximum);
Run Code Online (Sandbox Code Playgroud)