如何将double转换为const char,然后将其转换回double?
我想将double转换为字符串,通过fputs将其写入文件,然后当我读取文件时,需要将其转换回double。
我正在使用Visual C ++ 2010 Express Edition。
答案 0 :(得分:8)
由于您已将C ++添加到代码中,我建议您使用std::stringstream
:
#include <sstream>
stringstream ss;
ss << myDouble;
const char* str = ss.str().c_str();
ss >> myOtherDouble;
答案 1 :(得分:7)
如果您只想将double
值写入文件,则只需编写,不将转换为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!
答案 2 :(得分:3)
您可以使用这些功能进行转换:
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;
答案 3 :(得分:1)
使用此功能:
const char* ConvertDoubleToString(double value){
std::stringstream ss ;
ss << value;
const char* str = ss.str().c_str();
return str;
}