如何转换 C++ 字符串转int?
可能的重复:
如何在 C++ 中将字符串解析为 int?< /a>
如何将 C++ 字符串转换为 int?
假设您希望字符串中包含实际数字(例如“1”、“345”、“38944”)。
另外,假设您没有 boost,并且您确实想以 C++ 方式进行操作,而不是使用粗俗的旧 C 方式。
Possible Duplicate:
How to parse a string to an int in C++?
How do you convert a C++ string to an int?
Assume you are expecting the string to have actual numbers in it ("1", "345", "38944", for example).
Also, let's assume you don't have boost, and you really want to do it the C++ way, not the crufty old C way.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(8)
使用 C++ 流。
附言。 这个基本原则就是 boost 库 lexical_cast 的工作原理。
我最喜欢的方法是 boost lexical_cast<>
它提供了一种在字符串和数字格式之间相互转换的方法。 它下面使用字符串流,因此任何内容都可以编组到流中,然后从流中取消编组(看看 >> 和 << 运算符)。
Use the C++ streams.
PS. This basic principle is how the boost library
lexical_cast<>
works.My favorite method is the boost
lexical_cast<>
It provides a method to convert between a string and number formats and back again. Underneath it uses a string stream so anything that can be marshaled into a stream and then un-marshaled from a stream (Take a look at the >> and << operators).
我之前在 C++ 代码中使用过类似以下内容:
I have used something like the following in C++ code before:
C++ FAQ Lite
[39.2] 如何将 std::string 转换为数字?
https://isocpp.org/wiki/faq/杂项技术问题#convert-string-to-num
C++ FAQ Lite
[39.2] How do I convert a std::string to a number?
https://isocpp.org/wiki/faq/misc-technical-issues#convert-string-to-num
让我为 boost::lexical_cast 投上一票,
它会在错误时抛出
bad_lexical_cast
。Let me add my vote for boost::lexical_cast
It throws
bad_lexical_cast
on error.使用 atoi
Use atoi
也许我误解了这个问题,为什么您不想想要使用atoi? 我认为重新发明轮子没有意义。
我是不是错过了重点?
Perhaps I am misunderstanding the question, by why exactly would you not want to use atoi? I see no point in reinventing the wheel.
Am I just missing the point here?
在“stdapi.h”中
这个函数告诉你结果,以及有多少字符参与了转换。
in "stdapi.h"
This function tells you the result, and how many characters participated in the conversion.