【发布时间】:2020-10-05 14:42:12
【问题描述】:
我从命令行读入值 300000000000 并使用 atoi 将其转换为 int64_t 但是它输出错误的值。
int main(int argc, char * const argv[]){
int64_t timeSlice = -1;
if(argc == 4){
timeSlice = atoi(argv[1])
cout<<"timeslice: "<<timeSlice<<endl;
}
}
我在号码300000000000上运行我的程序
预期结果:
timeSlice: 300000000000
实际输出:
timeslice: -647710720
我什至尝试使用 stringstream 并且它会工作,但是当我将时间片传递给另一个函数时,该函数中的值仍然是错误的
【问题讨论】:
-
你需要atol或环礁
-
atoi是一个非常简单的工具。钝器。错误检查很少,因此在使用之前确保输入正确无误。 -
@Scheff,抱歉没有意识到。我会确保以后避免这样做