繁体   English   中英

Double to Const Char *

[英]Double to Const Char*

如何将double转换为const char,然后将其转换回double?

我想将double转换为字符串,通过fputs将其写入文件,然后当我读取文件时,需要将其转换回double。

我正在使用Visual C ++ 2010 Express Edition。

由于您在标签中添加了C ++,我建议您使用std::stringstream

#include <sstream>

stringstream ss;
ss << myDouble;
const char* str = ss.str().c_str();
ss >> myOtherDouble;

如果您只想将double值写入file,则可以简单地编写它, 而不必将它们转换为const char* 将它们转换为const char*是过度的。

只需使用std::ofstream

 std::ofstream file("output.txt")'

 double d = 1.989089;

 file << d ; // d goes to the file!

 file.close(); //done!

您可以使用这些函数进行转换:

template <class T>
bool convertFromStr(string &str, T *var) {
  istringstream ss(str);
  return (ss >> *var);
}

template <class T>
string convertToStr(T *var) {
  ostringstream ss;
  ss << *var;
  return ss.str();
}

例:

double d = 1.234567;
string str = convertToStr<double>(&d);
cout << str << endl;
double d2;
convertFromStr<double>(str, &d2);
cout << d2 << endl;

使用此功能:

const char* ConvertDoubleToString(double value){
    std::stringstream ss ;
    ss << value;
    const char* str = ss.str().c_str();
    return str;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM