ループ内の double 配列に異なる変数値を代入しようとしましたが、配列全体の値は 1 つだけです
double *float_array;
float_array = new double [dynamic_variable]; // debugger does tell me its size
stringstream ss1(line);
string s1;
string s2 = "2.1";
double test= atof(s2.c_str());
while (getline(ss1,s1,','))
{
float_array[count] = atof(s1.c_str());
count++;
}
count = 0;
root->data = float_array;
root->next = new node;
いくつかのコードを表示する
class node
{
public:
double * data;
node *next;
node(void);
~node(void);
};
int _tmain(int argc, _TCHAR* argv[])
{
double arr[4]= {0.689997};
double * float_array;
string file_name;
string line,token;
string path= "D:\\DM\\Assignment No. 1\\";
cin>>file_name;
file_name= path + file_name;
ifstream aa;
aa.open(file_name,ios::in|ios::out);
node *root; int float_arr_size=0;int count=0;
//aa.open(file_name,ios::in|ios::out);
if(aa.is_open())
{
while(!aa.eof())
{
aa>>line;
cout<<line<<endl;
cout<<endl;
stringstream ss(line);
string s;
while (getline(ss, s, ','))
{
float_arr_size++;
}
float_array= new double[float_arr_size];
s="";
stringstream ss1(line);
string s1;
string s2= "2.1";
double test= atof(s2.c_str());
while(getline(ss1,s1,','))
{
float_array[count] = atof(s1.c_str());
count++;
}
count = 0;
root->data =float_array;
root->next= new node;
}
}
aa.close();
return 0;
}
テスト変数で完全な変換が得られます。で「2.1」も取得s1
しますが、デバッガーでは、float_array で 5.0999945 の値を 1 つだけ取得します。これ以上の値を持つインデックスはありません。テスト変数の値を正しく変換した後、動的配列に問題があります。
解決策はありますか?