c语言long类型转换成string,如何在C ++中将long转换为string?「建议收藏」

c语言long类型转换成string,如何在C ++中将long转换为string?「建议收藏」你可以使用stringstream。#include//…std::stringnumber;std::stringstreamstrstream;strstream<<1L;strstream>>number;标准库中通常会有一些专有的C函数供您的编译器使用。尽pipe如此,我更喜欢更“便携”的变体。C的方法是用sprintf,但这不是很安…

大家好,又见面了,我是你们的朋友全栈君。

你可以使用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);

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/146719.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • matlab中importdata无法打开文件_importdata无法打开文件

    matlab中importdata无法打开文件_importdata无法打开文件最近使用importdata函数不能读取全部数据,数据集315行,但是读取了197行,那就是197-198之间有问题,百度之后有了思路。由于没有找到具体的证据,所以这里说一下解决思路。import可以导入很多文件类型,.dat文件应该默认的是ASCII码,在编码处看到(我用的notepad++)使用的UTF-8编码,修改为使用ANSI编码,看一下结果UTF-8编码ANSI编码果然有问题,删除就可以了。这个数据是直接从网页端复制的,所以应该是哪里出了问题。…

    2022年11月2日
  • Java中的相除(/)和取余(%)

    Java中的相除(/)和取余(%)让我们先看一段代码:publicclassDivision_remainder{publicstaticvoidmain(String[]args){inta=13/5;intb=13%5;intc=5/13;intd=5%13;inte…

    2022年6月12日
  • C / C++ 读取文件出现乱码解决方法 | 输出到文件出现乱码

    C / C++ 读取文件出现乱码解决方法 | 输出到文件出现乱码  昨天用C语言写了一下文件读取,发现读出来的全是乱码。这肯定是文字编码不同导致的。    据我查证,C语言的汉字编码方式是由你电脑决定的,所以需要看一下你电脑是什么编码,来确定你需要把文本文件改成什么编码。1.win+R,打开运行框之后输入cmd打开,然后在cmd最上边右键→属性,点开就可以查看当前编码方式,我的电脑是GBK。2.然后修改对应的文本文件编码方式。…

    2022年7月26日
  • JS定时器是什么「建议收藏」

    JS定时器是什么「建议收藏」很多人都会遇到图片的轮播效果,并且两分钟播放一下,这时候就会需要定时器,那么js定时器是什么?下面我们来讲解一下js定时器使用方法。1.js定时器是什么js定时器是利用js实现定时的一种方法,在网

    2022年7月3日
  • ssl证书怎么用_为什么会ssl证书无效

    ssl证书怎么用_为什么会ssl证书无效1.打开网站:https://freessl.cn/按提示操作,验证类型:离线验证;2.会给出一个域名的访问路径和一个文件内容,按照域名解析的主机配置nginx或其它的web服务,返回文件给出的内容;3.确认文件url和内容无误后点验证;4.通过后可以在KeyManager里的证书管理里看到颁发的证书;5.点更多然后选择导出Nginx证书,crt为证书,key为密钥;6.将文件分发到nginx等其它需要证书的服务上去使用;注意:这里最关键的一步就是,你的域…

    2022年10月23日
  • mybatisCodeHelpe离线激活码【2022.01最新】

    (mybatisCodeHelpe离线激活码)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

    2022年3月31日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号