char*,string,float,int 转换

char* 转 float:

double atof (const char* str);
/* atof example: sine calculator */
#include <stdio.h>      /* printf, fgets */
#include <stdlib.h>     /* atof */
#include <math.h>       /* sin */

int main ()
{
  double n,m;
  double pi=3.1415926535;
  char buffer[256];
  printf ("Enter degrees: ");
  fgets (buffer,256,stdin);
  n = atof (buffer);
  m = sin (n*pi/180);
  printf ("The sine of %f degrees is %f
" , n, m);
  return 0;
}

string 转 float;

float stof (const string&  str, size_t* idx = 0);
float stof (const wstring& str, size_t* idx = 0);
#include <iostream>   // std::cout
#include <string>     // std::string, std::stof

int main ()
{
  std::string orbits ("686.97 365.24");
  std::string::size_type sz;     // alias of size_t

  float mars = std::stof (orbits,&sz);
  float earth = std::stof (orbits.substr(sz));
  std::cout << "One martian year takes " << (mars/earth) << " Earth years.
";
  return 0;
}

相关有stoi,stod,stold,以及strtod

由数值转向string:

函数原型:

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);

举例

// to_string example
#include <iostream>   // std::cout
#include <string>     // std::string, std::to_string

int main ()
{
  std::string pi = "pi is " + std::to_string(3.1415926);
  std::string perfect = std::to_string(1+2+4+7+14) + " is a perfect number";
  std::cout << pi << '
';
  std::cout << perfect << '
';
  return 0;
}

 但是在 某些编译器里 to_string 不被支持。http://stackoverflow.com/questions/12975341/to-string-is-not-a-member-of-std-says-so-g

解决方法:

http://stackoverflow.com/questions/11063413/erroritoa-was-not-declared-in-this-scope

原文地址:https://www.cnblogs.com/xaf-dfg/p/3699256.html