c++ - 如何在此程序中使用 cin.getline() 以便它可以读取空格?
问题描述
我将如何在此代码中使用 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;
}
}
我试图这样做,但没有奏效。理想情况下,我希望提示输入如下所示。我只是无法正确格式化它。任何帮助将不胜感激!
for (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);
}
解决方案
推荐阅读
- bash - 通过listing获取部分名称
- session-cookies - Laravel 5.7 session flash message for login间歇性工作
- mbed - Mbed OS -> 它真的是开源的吗?
- ruby-on-rails - 您应该将 Rails 5+ 的新应用程序默认设置放在哪里?
- soapui - SoapUI (Pro) > DataDriven > 消息内容断言 - 如何处理十进制值
- stream - Dailymotion Live stream Api 中的“POST 视频”参数“publish”无效
- javascript - Django多对多字段的Javascript数组
- python - 如何从这两个文件中找到前 100 个名称?
- php - 数据库中存在单引号或双引号的 MySQL 搜索
- regex - 捕获组中的正则表达式负前瞻