关于C++字符串转数字格式问题
2022/2/4 22:12:53
本文主要是介绍关于C++字符串转数字格式问题,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
把字符串转成数字的时候可以使用C++的stringstream,具体用法如下:
std::stringstream ss("1234"); int result; ss << string; ss >> result; printf("%d", result); // 结果1234
但是这样就有个问题,如果给的字符串格式有错该怎么办?
例如:
std::stringstream ss("12x34"); int result; ss << string; ss >> result; printf("%d", result); // 结果12
最后的结果是12,后面的34没了,而且也没有反映出12x34这个字符串的错误。
这个时候可以这个样子:
std::string string = "12x34"; std::stringstream ss; int result; ss << string; ss >> result; int count = 0, int buffer = result; while (buffer != 0) { buffer /= 10; count++; } if (count != string.size()) { // 错误 } else { printf("%d", result); }
当然,这种方法还是有漏洞的..............但是总比没有好...........
(2022.2.4 随记)
这篇关于关于C++字符串转数字格式问题的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-29怎么去掉UniApp中字符串的空格?-icode9专业技术文章分享
- 2024-11-29Warning: Cannot modify header information - headers already sent by 报错信息是什么?-icode9专业技术文章分享
- 2024-11-29Excel中实现拖动排序的简易教程
- 2024-11-29如何在Excel中使用拖动排序功能
- 2024-11-28阿里云 ECS课程:新手入门教程
- 2024-11-27Excel中实现拖动排序的简单教程
- 2024-11-27Rocket消息队列资料:新手入门指南
- 2024-11-27rocket消息队资料详解与入门指南
- 2024-11-27RocketMQ底层原理资料详解入门教程
- 2024-11-27RocketMQ项目开发资料:新手入门教程