Double to Const Char * - PullRequest
       33

Double to Const Char *

8 голосов
/ 19 июня 2011

Как я могу преобразовать двойной в константный символ, а затем преобразовать его обратно в двойной?

Я хочу преобразовать double в строку, записать его в файл с помощью fputs, а затем, когда я прочту файл, его нужно будет преобразовать обратно в double.

Я использую Visual C ++ 2010 Express Edition.

Ответы [ 4 ]

8 голосов
/ 19 июня 2011

Поскольку вы добавили C ++ в свои теги, я предлагаю вам использовать std::stringstream:

#include <sstream>

stringstream ss;
ss << myDouble;
const char* str = ss.str().c_str();
ss >> myOtherDouble;
7 голосов
/ 19 июня 2011

Если вы просто хотите записать 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!
3 голосов
/ 19 июня 2011

Вы можете использовать эти функции для преобразования в и из:

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;
1 голос
/ 23 июня 2015

Используйте эту функцию:

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