如何使C ++只运行Stack <string ^> </string ^>中的数字

时间:2013-11-07 09:25:49

标签: c++-cli

我已经获得了使用Text的声明,但是我需要这样才能使它只适用于带(,)小数的数字,现在我被卡住了......

public ref class Form1 : public System::Windows::Forms::Form
    {
    private: Stack<String^>^ talen;
    public:
    Form1(void)
    {
        InitializeComponent();
        //
        //TODO: Add the constructor code here
        //
        talen = gcnew Stack<String^>();
        }

private: System::Void btnPush_Click(System::Object^  sender, System::EventArgs^  e) {
    String^ tal = tbxTal->Text;
    talen->Push(tal);
    tbxIn->AppendText(tal + "\n");
    tbxTal->Text = "";
}

private: System::Void Pop_Click(System::Object^  sender, System::EventArgs^  e) {
    while (talen->Count!=0)
    {
        String^ tal = talen->Pop();
        tbxUt->AppendText(tal + "\n");
    }
}

1 个答案:

答案 0 :(得分:0)

要检查字符串是否包含有效数字,我会使用其中一种TryParse方法。

这可能与Int32::TryParse类似。当然,您可以使用Single::TryParseUInt16::TryParse来表示您喜欢的任何类型的数字。

int value;
String^ tal = tbxTal->Text;
if(Int32::TryParse(tal, value))
{
    tbxIn->AppendText(tal + "\n");
    tbxTal->Text = "";
    talen->Push(tal);
}
else
{
    // Show an error.
}

如果你对堆栈做的唯一事情就是你在Pop_Click中展示的内容,那么Stack<String^>^就可以了,但是如果你正在做其他事情,那就考虑一下使用Stack<int>^(或您选择的任何数据类型)代替。