c ++ / cli检查值是否为数字

时间:2013-10-13 19:57:42

标签: c++ if-statement c++-cli

我已经制作了一个带有3个文本框的Windows窗体应用程序。为了使程序正常工作,我需要用三个框来填充数字。它们可以是正面的也可以是负面的。

我用过这个:

if(this->textBox1->Text=="" || this->textBox2->Text=="" || this->textBox3->Text=="") {
    MessageBox::Show("Error");
}
else {
    // continue with the program...
}

检查这些方框是否已填满,但如果有一个像字母或其他东西不同的符号,我无法弄清楚如何显示错误信息。

2 个答案:

答案 0 :(得分:2)

我认为你真的想对这些数字做些什么?

所以测试转换失败:

int number1;
if (!int::TryParse(textBox1->Text, number1)) {
    MessageBox::Show("First box wasn't an integer");
    return;
}

double number2;
if (!double::TryParse(textBox2->Text, number2)) {
    MessageBox::Show("Second box wasn't numeric");
    return;
}

最后,您可以在计算中使用数字number1number2

您不再需要对空字符串进行单独测试,因为如果输入为空,TryParse将返回false。

答案 1 :(得分:1)

使用Double.TryParse()

Double x;
array<TextBox^>^ inputs = gcnew array<TextBox^>(3);
inputs[0] = this->textBox1;
inputs[1] = this->textBox2;
inputs[2] = this->textBox3;

for (int i = 0; i < inputs->Length; i++)
{
    if(!Double::TryParse(inputs[i]->Text, x))
    {
        MessageBox::Show("Error", String::Format("Cannot parse textBox{0} as number", i+1));
    }
}