バイナリファイルから倍精度浮動小数点数を読み込み、静的double変数に代入しようとしています。私は数多くのメソッドを試しましたが、メソッドに関係なく変換の結果は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