大家好,又见面了,我是你们的朋友全栈君。
你可以使用stringstream。
#include // … std::string number; std::stringstream strstream; strstream << 1L; strstream >> number;
标准库中通常会有一些专有的C函数供您的编译器使用。 尽pipe如此,我更喜欢更“便携”的变体。
C的方法是用sprintf,但这不是很安全。 在一些库中有像sprintf_s这样的新版本可以防止缓冲区溢出。
在C ++ 11中,实际上有中的std :: to_string和std :: to_wstring函数。
string to_string(int val); string to_string(long val); string to_string(long long val); string to_string(unsigned val); string to_string(unsigned long val); string to_string(unsigned long long val); string to_string(float val); string to_string(double val); string to_string (long double val);
那么如果你是复制粘贴的粉丝,这里是:
#include template inline std::string to_string (const T& t) { std::stringstream ss; ss << t; return ss.str(); }
int main() { long mylong = 123456789; string mystring; stringstream mystream; mystream << mylong; mystring = mystream.str(); cout << mystring << “\n”; return 0; }
我不知道这是什么样的作业,但是很可能老师不想要一个你称之为“神奇”的现有function的答案(尽pipe这是推荐的方法),但他想看如果你可以自己实现这个。
回到过去,我的老师曾经说过这样的话:“我想看看你是否可以自己编程,而不是如果你能在系统中find它。 那么,他是多么的错…)
无论如何,如果你的老师是一样的,这是艰难的方式来做到这一点..
std::string LongToString(long value) { std::string output; std::string sign; if(value < 0) { sign + “-“; value = -value; } while(output.empty() || (value > 0)) { output.push_front(value % 10 + ‘0’) value /= 10; } return sign + output; }
你可以争辩说,使用std::string不是“困难的方式”,但我猜在实际algorithm中什么是重要的。
有几种方法。 阅读Manor Farm的string格式化程序进行深入比较。
#include …. std::stringstream ss; ss << a_long_int; // or any other type std::string result=ss.str(); // use .str() to get a string back
std::stringstream出std::stringstream 。
到目前为止,还没有人介绍过的其中一个问题,就是帮助你进一步思考这个问题,这个格式应该是什么格式。
只需看看spreedsheet程序(如Calc / Excel)。 你想要四舍五入到最接近的百万,如果它是负数括号,总是显示符号….数字真的是别的东西的代表,如果你用Oractal或Hex显示它?
到目前为止的答案给了你一些默认输出,但也许不是正确的。
你可以在C ++ 11中使用std :: to_string
long val = 12345; std::string my_val = std::to_string(val);
我通常这样做的方式是使用sprintf。 所以很长一段时间你可以做以下假设你是在一个32位的架构:
char buf[5] = {0}; // one extra byte for null sprintf(buf, “%l”, var_for_long);
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/146719.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...