我想将time()返回的unix时间戳作为time_t转换为整数。我一直在寻找解决方案20分钟,并决定在这里问。
我找到的每个解决方案都没有奏效。当尝试从time_t转换为int时,我得到错误:
long int t = static_cast<long int> time(NULL);
错误C2061:语法错误:标识符'time'
错误C2146:语法错误:缺少'('标识符'时间'之前'
我对C ++非常陌生。提前谢谢。
答案 0 :(得分:3)
time_t
已经是一个整数,虽然它被故意选择存储系统的全部UNIX时间,所以我建议反对这个演员。
但是,如果你坚持,你就是正确的行,但是只是让演员语法错误。
通常,将e
静态转换为T
如下所示:
static_cast<T>(e) // <-- parentheses!
正如错误消息告诉您的那样,您“失踪”('在标识符'时间之前''。
所以,你的表达将是:
long int t = static_cast<long int>(time(NULL));
答案 1 :(得分:2)
只需阅读错误并插入'缺失(标识符时间':
long int t = static_cast<long int>(time(NULL));
static_cast
需要the value to be encapsulated in parentheses。
答案 2 :(得分:0)
只需在时间周围添加括号(NULL):
long int t = static_cast<long int>(time(NULL));