【问题标题】:Unformatted/Formatted input未格式化/格式化输入
【发布时间】:2015-06-07 13:21:24
【问题描述】:

工作一次后,循环不接受字符串 menuitem 的输入。但它适用于 menuprice。

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;
    }
}

【问题讨论】:

  • 你能把剩下的代码贴出来吗?

标签: c++ input iostream cin formatted-input


【解决方案1】:

您实际上并没有调用ignore,因为您缺少参数列表括号:

cin.ignore();

这只有在\n 紧跟在输入之后才有效。如果你想更安全一点,你可以这样做:

cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');

这将丢弃直到并包括下一个 \n 字符的所有内容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-25
    • 1970-01-01
    • 1970-01-01
    • 2014-05-17
    • 1970-01-01
    • 2016-10-09
    相关资源
    最近更新 更多