0

これは単純な作業のはずですが、numericUpDown コントロールの内容ではなく、数値「1」を含むファイルを受信して​​います。ブレークポイントを使用すると、ta[i]->Value からの値が期待どおりの値であることがわかりますが、変換後、値の代わりにファイルに 1 が返されます。

     private: void storePreviousSettings()
{
    ofstream settings("prev_settings.txt");
    if(settings.is_open())
    {
        settings << "#ta" << endl;
        for(int i = 0; i < 16; i++)
        {
            settings << ta[i]->Value.ToString() << endl;
        }
        settings << "End" << endl;
        settings.close();
    }
}

注: ta は次のように定義されます。

private: NumericUpDown * ta[];

numericUpDown コンポーネントの値ではなく、ofstream を使用してファイルに「1」を出力するのはなぜですか? どうすればこれを修正できますか? ファイルに書き込む別の方法はありますか?

更新/現在失敗した試行

この行を追加すると:

System::String * temp = ta[i]->Value.ToString();

「settings << ta[i]->Value ...」行の前で、ブレーク ポイントを使用すると、「temp」が期待値を保持し、ta[i]->Value.ToString() が機能していることがわかります。そのため、 ta[i]->Value.ToString() が << 演算子とともに使用される場合、その前のブレーク ポイントで表示されている値の代わりに、ファイルで「1」を受け取るためには、何かが変更されている必要があります。ファイルに書き込まれます。

どんな助けや指示も大歓迎です。ありがとう。

4

1 に答える 1