百科问答小站 logo
百科问答小站 font logo



C++中如何将string类型转换为int类型? 第1页

  

user avatar   zhao-xiao-de-93 网友的相关建议: 
      

你可以使用 C++11 标准库里的 stringstream,它可以实现字符串和所有各种数字的转换,包括 int, float, double,简单粗暴,不用考虑缓冲区溢出的问题。自从知道这个神器之后,我就没有用过 sscanf 和 sprintf 函数了。

简单演示一下:

       #include <string> #include <sstream>  // 包含头文件  int main() {     std::stringstream str2digit;     std::string sint='1', sfloat='1.1', sdouble='1.2';     int dint;     float dfloat;     double ddouble;       str2digit << sint; str2digit >> dint;  // string to int     str2digit.clear();     str2digit << sfloat; str2digit >> dfloat;  // string to float     str2digit.clear();     str2digit << sdouble; str2digit >> ddouble;  // string to double      std::cout << dint << ", " << dfloat << ", " << ddouble << std::endl;      return 0; }      


很简单吧,同理,也可以把整数浮点数转为字符串,将流的输入和输出对调一下即可。

当要进行多次数据类型转换时,需要先使用 clear() 清空流,不然之前的数据会影响下一次数据类型转换。


最后我推荐一本介绍C++的经典书,豆瓣评分9.5分,里面包含了42招独家技巧助您改善C++11和C++14的高效用法。




  

相关话题

  想走虚幻引擎c++路线,c++是否应该大量学习算法? 
  typename = int 这种语法的意义是什么? 
  有哪些见过的时间复杂度为无限大的算法? 
  为什么在汇编语言中需大量使用跳转指令,而在C语言中却尽量避免使用goto语句呢? 
  教授说没有写过一千行以上代码的程序就别想上大公司,这种说法对吗? 
  c#中虽然异步和多线程是两码事,但是是否异步微软提供的async函数内部还是多线程去实现的? 
  new一个String对象的时候,如果常量池没有相应的字面量真的会去它那里创建一个吗?我表示怀疑。 
  腾讯以及各大厂的 C++ 开发环境是什么样的? 
  你遇到过哪些高质量的 C++ 面试? 
  如果一定要在C++和JAVA中选择,是C++还是java? 

前一个讨论
谁将是下一个代替美国的超级大国?
下一个讨论
为什么弱Lp空间不是赋范线性空间?





© 2025-04-11 - tinynew.org. All Rights Reserved.
© 2025-04-11 - tinynew.org. 保留所有权利