我有這個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是 – 2012-04-23 08:38:52
。並沒有超載。 – nixgadgets 2012-04-23 08:41:29
該代碼是一個醜陋的解決方法,因爲'atof'不能發出解析錯誤。 'strtod'可以,並且使代碼更具可讀性。 – MSalters 2012-04-23 14:14:37