问题描述
|
我基本上是想与
struct timeval tv = { };
gettimeofday(&tv,NULL);
而且有效。问题在于时间将接受为参数的函数的类型为const char *
所以我做了
const char *time;
time = &tv.tv_sec;
问题是,tv.tv_sec的类型为time_t,我需要将其插入
const char *time
将其传递给需要const char *的函数
我该怎么做?将整数放入const char *
我已经尝试了一些简单的方法来强制转换它,但是我对C并不了解
解决方法
要将整数格式化为字符串,应使用
snprintf
。
例如:
char resultString[64];
snprintf(resultString,sizeof(resultString),\"Current time : %d\",tv.tv_sec);
, 当您发现自己需要将时间指针转换为char指针时,这表明存在某些错误。您应该重新考虑问题。
您没有描述接受const char *的其他函数,否则我会对发生的事情有更好的了解。
我怀疑您可能需要将时间整数转换为字符串,然后将指针传递给该字符串的开头。为此,您可能需要使用一个称为strftime的函数。
, 可直接使用的C函数是:
ctime
(输入为time_t
类型)
asctime
(输入为struct tm
类型)
如果需要控制格式,请使用:
strftime
(输入为struct tm
类型)
链接的页面包含使用示例。该字符串必须预先分配。
, 检查sprintf
或snprintf
。