このMFCアプリケーションでは、次のコードを使用して、アプリケーションの編集コントロールで入力された数字の有効性を確認しています。その文字列として検証されます。有効な番号エントリを確認するためのMFC Visual C++コード
bool invalid = FALSE;
int string_length = InputEdit.GetWindowText(text, 10);
if (text[0] == '-1')
for(i=1; i<string_length; i++)
if((text[i] < '0' || text[i] > '9') && text[i] != '.'){
MessageBeep(MB_ICONEXCLAMATION);
Reactive_Const_Status_Text.SetWindowText("Invalid AA Value");
invalid = TRUE;
}
else
for(i=0; i<string_length; i++)
if((text[i] < '0' || text[i] > '9') && text[i] != '.'){
MessageBeep(MB_ICONEXCLAMATION);
Reactive_Const_Status_Text.SetWindowText("Invalid AA Value");
invalid = TRUE;
}
if(!invalid){
double temp_value = atof(text);
reac.VelAA = temp_value;
}
この編集コントロールでは、ユーザーは負の数を入力できます。しかし、誰かがこの行 "if(text [0] == '-1')"がコード内で何をするかについていくつかの光を放つことができますか?それは負の数をチェックしていますか?もしそうなら、それはなぜ「-1」を使用しますか?次に、私はこのコードをC#に変換したいのですが、どうすればこの行を変換できますか?事前に
おかげで
InputEditのクラスは何ですか? GetWindowTextのオーバーロードはありますか?このコードは間違っているようです。 –
そのCEdit。過負荷はありません。 – nixgadgets
このコードは、 'atof'が解析エラーを通知することができないという事実のための醜い回避策です。 'strtod'ができるようになり、コードがはるかに読みやすくなります。 – MSalters