为什么系统(" CLS")同时不起作用?

时间:2017-02-17 15:52:06

标签: c++ windows

我想在选择选项后清除屏幕,但我不知道它不起作用。它将显示Display()函数和Create New Purchase等内容。这是因为在while循环中?

while (selection != -1) // While for create new purchase 
        {
            cout << "Create New Purhcase" << endl << endl;
            cout << "1. Display Item" << endl;
            cout << "2. Create a New Purchase" << endl << endl <<endl;
            cout << "0. Back to Main Menu" << endl; 
            cout << "Enter Option:";

            cin >> selection;

            //Back to main menu 
            if (selection == 0)
            {
                system("CLS");
                break;
            }
            if (selection == 1)
            {
                system("CLS");
                cout << "Display Menu" << endl;
                Display();
            }

void Display()
{
system("CLS");
temp = itemHead; //start at the first node
cout << "Dispaly Menu" << endl << endl; 

while (temp != NULL)
{
    cout << "ID:" << temp->itemid << endl; 
    cout << "Item Name:" << temp->name << endl;
    cout << "Item Type:" << temp->type << endl;
    cout << "Item Price" << temp->cost << endl;
    cout << endl << endl;
    temp = temp->next; //forward to the next node
}

}

1 个答案:

答案 0 :(得分:-1)

这里的问题是你的代码在打印Display()函数后没有停止,因为它是while循环的一部分。结果,它打印菜单,然后再次打印选项。

要确保在打印菜单后循环暂停,请将代码更改为:

if (selection == 1)
{
    system("CLS");
    cout << "Display Menu" << endl;
    Display();
    cout << endl << endl;
    system("pause");
}

system("pause")也是算法文件的一部分,因此您不需要包含任何内容。这样,整个菜单将从您的Display()函数打印,然后打印一些换行符,最后一个提示按ENTER键。在按ENTER键之前,while循环将不会继续。

注意:还有其他方法可以做到,但这是最简单和最短的方法。如果您对我的答案有任何疑问,或者我的答案无效,请在评论栏中告知我。