我有以下代码:
char stringHour[50], stringMinute[50], stringSecond[50];
// lots of code...
itoa(hour, stringHour, 10);
itoa(minute, stringMinute, 10);
itoa(second, stringSecond, 10);
strcat(":", stringSecond);
strcat(":", stringMinute);
strcat(stringMinute, stringSecond);
// stringHour contains both HH and :SS:MM
strcat(stringHour, stringMinute);
drawText(HRES/2 - 4, VRES - GLYPH_HEIGHT*2,
stringHour, black);hour、minute和second都是整型。
我想要做的是显示时间如下: HH:MM:SS。
变量保证在0到59之间( hout除外,0-24)。
drawText是正确的。
这段代码会使我的程序崩溃,我找不到它有什么问题。你能?
耽误您时间,实在对不起!
发布于 2011-01-02 01:25:32
失败的很可能是下面这段代码:
... stuff removed
strcat (":",
... other stuff removed几乎可以肯定的是,在您所使用的平台上,不能将内容strcat到字符串文字上。
strcat方法也存在缓冲区溢出安全问题。也许使用snprintf可能是一个更好的选择?
发布于 2011-01-02 01:29:01
这是错误的:
strcat(":", stringSecond);您不能使用字符串文字作为第一个参数。请参阅strcat文档。
发布于 2011-01-02 01:23:20
此外,最好将数组初始化为零。
char stringHour[50] = {0}, stringMinute[50] = {0}, stringSecond[50] = {0};然后尝试将cat的结果存储到一个字符串中,看看结果是什么。
https://stackoverflow.com/questions/4574856
复制相似问题