最近在做一个平台,从后台传过来的数据(内存大小)是字符串,而且是是已字节为单位的很长。
从字符串到uint64_t转换,想到了atoi,atol,atoll,strtol,结果发现18446744073709551616全被截断了。
(unsigned long long)atoll(18446744073709551616); 这个肯定是不行的。
后面用到了stringstream 才把问题解决,包含头文件<sstream>
char *p = "18446744073709551616";
stringstream strValue;
strValue << p;
uint64_t value;
strValue << value;
这样可以字符串转换为uint64_t类型了。
stringstream 除了类型转换外,功能很强大,具体查阅相关资料。