0

我在学校和自己学习 C++ 编程。现在我正在尝试对视觉体验和用户界面进行一些升级。我的问题是,我可以在简单地单击 MessageBox 的“NO”按钮后关闭程序吗?程序运行后,我想跳过“按任意键继续”。这是代码:`

#include<iostream>
#include<windows.h>
#include<stdlib.h>
using namespace std;
int main()
{
MessageBox ( NULL, "7. Adott az a(i), i=1,n szamsor. Hozzuk létre a b szamsort", "Feladat szovege", MB_OK);
float a[111], b[111], n;
cout<<"n= ?\b";

MessageBox ( HWND_DESKTOP, "Kerlek irj be egy szamot, hogy hany ertek van a sorozatban!", "10_tombok/07", MB_OK);

cin>>n;
cout<<"\n";

for(int i=1; i<=n; i++)
{
    cout<<"a"<<i<<"= ?\b";
    cin>>a[i];
}

for(int i=1; i<=n; i++)
{

    if (a[i]>=0)
    {
        b[i]=2*a[i];
    }
    else
    {
        b[i]=-a[i]/2;
    }

}

cout<<"\nA 'b' szamsor: ";

for(int i=1; i<=n; i++)
{
    if (i!=n)
        cout<<b[i]<<", ";
    else
        cout<<b[i]<<"\n";
}
int mbID= MessageBox (NULL, "Szeretned ujra futtatni a programot?", "Program end", MB_ICONQUESTION | MB_YESNO | MB_DEFBUTTON2);
switch (mbID)
{
    case IDYES:

    {
        return main();
        break;
    }
    case IDNO:
    {
        //here i need something
        return 0;
        break;
    }
}

`

4

1 回答 1

1

为了解决这个问题,如果从 Visual Studio 中运行,您将看到“按任意键继续”。迅速的。尝试直接运行可执行文件。

对于您评论中的问题,请使用循环。至少是这样的:

int main()
{
    int done = 0;
    while(!done)
    {
        // skipping all the other program code above...

        switch (mbID)
        {
        case IDYES:
            break;
        case IDNO:
            done = 1;
            break;
        }
    }

    return 0;
}

main()从 C++ 程序中调用实际上是未定义的行为。

如果您真的对 Windows UI 编程感兴趣,请查看一些 Win32 或 MFC 教程。它与构建控制台应用程序有点不同。

于 2013-12-03T17:50:28.787 回答