那里! 当我尝试将变量从“size_t”转换为“string”时,似乎所有结果最终都是一些奇怪的字符,这是我的代码:
# include <iostream>
# include <string.h>
# include <string>
string ulltostr(size_t bigdata){
size_t x = bigdata;
std:string ret = std::to_string(bigdata);
return ret;
}
int main(){
size_t p =1210259646;
printf("p : %llu\n",p);
printf("p in string : %s\n",ulltostr(p));
return 0;
}
// result be like:
// p : 1210259646
// p in string : 婿?s)
有人请指出我错了什么吗?我打印它的方式不正确,还是转换函数“ulltostr”中出现任何错误?如果还有其他方法可以从 'size_t' 转换为 'string' 吗?谢谢!!!
printf
s %s
转换说明符需要一个 char*
,它应指向以 null 结尾的 C 字符串。 A std::string
不是。您必须使用 ulltostr(p).c_str()
才能与 printf
一起使用。