MFC 视觉对象C++代码来检查有效的数字条目

本文关键字:有效 数字 检查 视觉 对象 C++ 代码 MFC | 更新日期: 2023-09-27 18:31:54

我有这个MFC应用程序,其中包含以下代码段,用于检查使用应用程序中的编辑控件输入的数字的有效性。它被验证为一串字符。

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#,那么如何转换此行?

提前致谢

MFC 视觉对象C++代码来检查有效的数字条目

实际上,此代码也在检查负数。第一个 for 循环从第二个数字开始检查。

如果(文本[0] == '-1')行应该是如果(文本[0] == '-')

我这样猜测是因为C++单引号只能用于单个字符,而不能用于具有多个字符的字符串。

在 C# 中,如果 (text[0] == '-') 也可以使用相同的行。

谢谢。