Я пытаюсь прочитать число с плавающей точкой двойной точности из двоичного файла и назначить его статической двойной переменной. Я пробовал множество методов, однако результат преобразования, независимо от метода, равен 0. Число правильно считывается из файла (в виде массива символов), однако что-то происходит, когда я пытаюсь его преобразовать ... Включенные заголовки # включают < строку> # включить < sstream> #include < stdlib.h>Строка для двойного преобразования allways 0
фрагмент кода метода приведен ниже:
FILE * pFile;
char mystring [100];
double v;
string temp;
QString t_string;
pFile = fopen ("path_to_binary_file","r");
if (pFile != NULL)
{
if (fgets (mystring , 100 , pFile) != NULL)
{
//I am putting a \0 on the last position since my array finishes with \n
mystring[strlen(mystring) - 1] = '\0';
temp.assign(mystring, mystring + 12);
t_string = QString::fromStdString(temp);
// std::istringstream s(temp);
// s >> sheethConstant;
v = t_string.toDouble();//atof(mystring);
static_variable = v;
}
fclose (pFile);
}
Какова ценность QString? – Jepessen
'std :: stod (" 1234.56 ")'. – Chad
Вы также должны включать в себя заголовок Qt, а также те, которые указаны. – Steve