將數字字符串轉換為數字


將數字字符串轉換為數字的方法有多種,C中有atoi,atof,sscanf函數可用,這些函數的用法可以在msdn里查到,這里就不在多說了,現在說一種通用的轉換的方法:

  1. template <typename Type>
  2. bool str2value(const std::string &str, Type &value, std::ios_base &(*fun)(std::ios_base&) = std::oct)
  3. {
  4.  std::istringstream input_istring(str); //把字符串保存入字符流
  5.  return(!(input_istring >> fun >> value).fail());
  6. }

第1個參數為待轉換的字符串,第2個參數是轉換后的值

第3個參數fun的值可能為std::hex, std::dec, std::oct

 

 

示例:

  1.  std::string strNum = "60.12";
  2.  float fNum = 0.0;
  3.  str2value<float>(strNum,fNum);
  4.  strNum = "FFF";
  5.  int iNum = 0;
  6.  str2value<int>(strNum,iNum,std::hex);
  7.  std::cout << fNum << std::endl;
  8.  std::cout << iNum << std::endl;

輸出:

60.12

4095


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com