これは単純な作業のはずですが、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」を受け取るためには、何かが変更されている必要があります。ファイルに書き込まれます。
どんな助けや指示も大歓迎です。ありがとう。