工作一次后,循环不接受字符串菜单项的输入。但它对薄荷有效。
struct menuItemType
{
char menuitem[30];
float menuPrice;
};
void getdata( menuItemType menulist[], int items)
{
for (int i = 0; i < items; i++)
{
cout<<"Please enter the menu item:"<<endl;
cin.getline(menulist[i].menuitem,20,'\n');
cout<<"Please enter the price for the menu item:"<<endl;
cin>>menulist[i].menuPrice;
cin.ignore;
}
}发布于 2015-04-02 14:36:13
实际上,您没有调用ignore,因为您缺少了参数列表括号:
cin.ignore();只有当\n立即跟随输入时,这才能起作用。如果你想变得更安全,你可以:
cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');它将丢弃所有直到并包含下一个\n字符的所有内容。
https://stackoverflow.com/questions/29415466
复制相似问题