【问题标题】:cpp datatypecpp 数据类型
【发布时间】:2009-06-15 05:56:57
【问题描述】:

您好,我正在 vc++ 6.0 中开发 MFC 应用程序。我为 EditBox1 创建了一个 int 变量(m_iEdit1),为 EditBox2 创建了一个 CString 变量(m_strEdit2)。我想给出两个编辑框不能为空的条件。

如果(m_iEdit1==" ")
返回;

如果(m_strEdit2=="")
返回;

但是第一个条件在这里不起作用,我会得到错误 错误 C2446: '==' : 没有从 'char *' 到 'int' 的转换

请告诉我如何检查 EditBox 的 int 变量是否为空。

【问题讨论】:

  • 这是一个 MFC 应用程序吗?它是 .NET 应用程序吗?
  • 不,它是 vc++ 6.0 不在 .net 中

标签: visual-c++ mfc


【解决方案1】:

你必须使用UpdateData() 方法。
除非您,否则 m_ 变量不会从控件中获取数据。

UpdateData(TRUE) // the m_ variables will be updated from the controls
UpdateData(FALSE) // the controls will be updated from m_ variables

您希望 m_iEdit1 为整数,但由于您需要检查 EditBox1 是否为空,请将 m_iEdit1 更改为 CString。然后就可以使用了

atoi(m_iEdit1)

获取整数值。

现在 m_iEdit1 和 m_strEdit2 都是 CString,您可以使用代码

if ( m_iEdit1.IsEmpty() ) return;
if ( m_strEdit2.IsEmpty() ) return;

【讨论】:

    【解决方案2】:

    您必须检查实际的 EditBox 变量(您是否称其为 EditBox1?)以查看该值是否为空。

    您还应该考虑其他检查,以确保没有人试图将非数值分配给您的整数值。

    【讨论】:

    • 是的,它是实际的 EditBox1 变量。如何查看值是空的,你可以举个例子。提前致谢
    【解决方案3】:

    您可以使用GetLine 方法从编辑控件中获取字符串。然后你可以使用 IsEmpty(假设你传递了一个 CString)来检查它是否为空。

    【讨论】:

    • 因为我想要整数值而不是 CString
    • 首先获取一个CString的值。然后你可以使用 _ttoi 之类的函数将其转换为整数。
    猜你喜欢
    • 2012-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-16
    • 2020-12-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-09
    相关资源
    最近更新 更多