如何將double轉換爲const char,然後將其轉換爲double?Double到Const Char *
我想要將double轉換爲字符串,通過fputs將其寫入文件,然後當我讀取文件時,需要將其轉換回double。
我正在使用Visual C++ 2010 Express Edition。
如何將double轉換爲const char,然後將其轉換爲double?Double到Const Char *
我想要將double轉換爲字符串,通過fputs將其寫入文件,然後當我讀取文件時,需要將其轉換回double。
我正在使用Visual C++ 2010 Express Edition。
如果你只想寫的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!
謝謝!我真的不知道這是可能的,大聲笑。我只用C++工作了幾天。 –
既然你加入C++將自己的代碼,我建議你使用std::stringstream
:
#include <sstream>
stringstream ss;
ss << myDouble;
const char* str = ss.str().c_str();
ss >> myOtherDouble;
您應該添加,在對非const成員函數的任何調用之後,指針不應被視爲有效。 – lccarrasco
您可以使用這些功能的轉換和從:
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;
使用此funcition:
const char* ConvertDoubleToString(double value){
std::stringstream ss ;
ss << value;
const char* str = ss.str().c_str();
return str;
}
如果你使用C++,你真的想使用char和fputs嗎? –
更好地使用二進制文件,而不是文本文件並存儲雙「原樣」。然後閱讀它「原樣」。確保文件的「結構」不會改變。 – Ajay
我想支持Ajay所說的:使用二進制文件並將雙精度數據存儲爲雙精度數據,而不是將它們轉換爲十進制表示法(如果僅僅是因爲這可能會導致舍入誤差!能夠以字符串形式將其寫入文本文件。 – leftaroundabout