【发布时间】:2014-03-14 19:01:59
【问题描述】:
我的计算器程序需要一点帮助。我已经为数字 0-9 和算术运算符等主要按钮创建了代码,以使其执行简单的计算。
我现在遇到的问题是使 CE 按钮工作,单击 CE 按钮后,我需要从显示标签中删除最后输入的字符。
我试图以某种方式修改此代码,但它不起作用:
lblResult->substr(0, lblResult->size()-1);
我知道我在这里做错了,你能帮帮我吗?
提前致谢
【问题讨论】:
-
您确实意识到
substr()返回一个新的string,而不是修改调用它的对象?如果您正在这样做并期望lblResult发生变化,只需在前面放一个lblResult =(或者为了更高效,使用lblResult->erase(lblResult->size() - 1);,或者在 C++11 中使用lblResult->pop_back();)。 -
@crashmstr
lblResult是显示计算结果的标签 -
@user3124052 ...标签?我想我明白了,但它是什么class?这才是最重要的部分。
-
@crashmstr 在VS生成的form1类中
public ref class Form1 : public System::Windows::Forms::Form -
@user3124052:这解释了很多。
System::Windows::Forms::Label不是 C++ 标准std::string,这就是这里的每个人都认为您的意思(毕竟“从字符串中删除最后一个字符”),实际上您可能确实是这个意思。遗憾的是,您在 .NET 世界中使用非标准数据类型进行操作。您将需要大致类似于lblResult->Text = lblResult->Text.Remove(lblResult->Text.Length);的东西。检查here for the .NET String API。
标签: c++ visual-studio-2010 visual-studio c++-cli calculator