我想在选择选项后清除屏幕,但我不知道它不起作用。它将显示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
}
}
答案 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循环将不会继续。
注意:还有其他方法可以做到,但这是最简单和最短的方法。如果您对我的答案有任何疑问,或者我的答案无效,请在评论栏中告知我。