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