C++ 如何在此程序中使用cin.getline(),以便它可以读取空格?

C++ 如何在此程序中使用cin.getline(),以便它可以读取空格?,c++,C++,在这段代码中,如何使用cin.getline()让程序在键入项目名称时获取一个空格作为输入 这就是我希望我的代码能够做到的: 使用动态数组,编写一个程序,允许用户输入购买的杂货数量和每件商品的价格。然后,该程序输出食品杂货的总成本,包括8%的税费 #include <iostream> #include <string> using namespace std; struct lineItem { string groceries; int quant

在这段代码中,如何使用cin.getline()让程序在键入项目名称时获取一个空格作为输入

这就是我希望我的代码能够做到的: 使用动态数组,编写一个程序,允许用户输入购买的杂货数量和每件商品的价格。然后,该程序输出食品杂货的总成本,包括8%的税费

#include <iostream>
#include <string>

using namespace std;

struct lineItem {
    string groceries;
    int quantity;
    double pricePerEach;
};

double sumPrice(lineItem *list, int size);

void printGroceries(lineItem *list, int size);


int main () {
    double salesTax;
    double subTotal, totalPrice;
    int i, numOfItems;

    cout << "Enter number of grocery items: ";
    cin >> numOfItems;
    cout << endl;

    lineItem *receipt;      //or auto *receipt = new lineItem[numOfItems];
    receipt = new lineItem[numOfItems];

    cout << "Enter the name, quantity, and price of item: " << endl;

    for (i = 0; i < numOfItems; i++)
        cin >> receipt[i].groceries >> receipt[i].quantity >> receipt[i].pricePerEach;

    subTotal = sumPrice(receipt, numOfItems);

    cout << "Sub Total: $" << subTotal << endl;

    salesTax = .08 * subTotal;
    totalPrice = subTotal + salesTax;

    cout << "Sales Tax at 8% : $" << salesTax << endl;
    cout << "Total Price: $" << totalPrice << endl;

    printGroceries(receipt, numOfItems);
    sumPrice(receipt, numOfItems);

    delete [] receipt;

    return 0;
}

double sumPrice(lineItem *list, int size) {
    double sum = 0;

    for (int i = 0; i < size; i++) {
        sum = sum + (list[i].quantity * list[i].pricePerEach);
    }
    return sum;
}

void printGroceries(lineItem *list, int size) {

    for (int i = 0; i < size; i++) {
        cout << (i + 1) << ":" << list[i].groceries << endl;
    }
}
#包括
#包括
使用名称空间std;
结构行项目{
串杂货;
整数;
双倍价格;
};
双重总价(行项目*列表,整数大小);
作废打印杂货(行项目*列表,整数大小);
int main(){
双重销售税;
双倍小计,总价;
int i,numOfItems;
cout>numOfItems;
cout>收货[i]。数量>>收货[i]。pricePerEach;
小计=总价(收据,数量项);

无法读入
std::string
使用不同的
getline
std::getline(cin,收据[i]。杂货店)
cin.getline
变量总是先阅读文档:。它显示了有关用法的示例。谢谢!我先阅读了文档,但我仍然对如何使用结构感到困惑。这就是你的意思吗?对于(I=0;Ifor (i = 0; i < numOfItems; i++) { cout << "Item name: "; cin.getline(receipt[i].groceries,numOfItems); cout << "\tQuantity: "; cin.getline(receipt[i].quantity,numOfItems); cout << "\tPrice: $"; cin.getline(receipt[i].pricePerEach,numOfItems); }