我正在为 Pebble 开发,但我的开端并不顺利。
我正在尝试使用 2 个字符串和 2 个值填充 text_layer,如下所示:
WAIT AVG: 3 MAX: 5
由于 Pebble SDK 不支持 malloc
,我无法使用 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);
如有任何帮助,我们将不胜感激。我知道我可以创建 4 个单独的 TextLayer,但这对我来说是最后的选择。
最佳答案
您只是错误地使用了 snprintf
。 ;-)
第二个参数(您正在尝试计算,很糟糕)是您要打印到的字符数组的长度,不是您要写入的字符数。
像这样的东西应该可以工作:
char labelText[64]; // Is this big enough?
snprintf(labelText, 64,"%s %d %s %d",avgText,average,maxText,maximum);
关于c - snprintf + 鹅卵石,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20999114/