最近我一直在購物車的任務,並不明白爲什麼下面的代碼不起作用。購物車分配,getline概念()
我必須編寫一個代碼,輸出名稱,成本和數量的項目,三個項目不使用數組。
在最多三個項目的末尾,我必須顯示項目的總成本。目前我被卡住了,因爲在我添加第二個項目後,程序似乎沒有要求第一個輸入(項目名稱)。下面的代碼:
#include <iostream>
int main() {
int total;
std::cout << "Item name:";
std::string itemName;
std::getline(std::cin,itemName);
std::cout << "Cost(in cents):";
int cost;
std::cin >> cost;
std::cout << "Quantity:";
int quantity;
std::cin >> quantity;
std::cout << "Do you want to add more items? (Y/N)";
char option;
std::cin >> option;
if (option == 'y') {
std::cout << "Item name:";
std::string itemName2;
std::getline(std::cin,itemName2);
std::cout << "Cost(in cents):";
int cost2;
std::cin >> cost2;
std::cout << "Quantity:";
int quantity2;
std::cin >> quantity2;
std::cout << "Do you want to add more items? (Y/N)";
char option2;
std::cin >> option2;
if (option2 == 'y') {
std::cout << "Item name:";
std::string itemName3;
std::getline(std::cin,itemName3);
std::cout << "Cost(in cents):";
int cost3;
std::cin >> cost3;
std::cout << "Quantity:";
int quantity3;
std::cin >> quantity3;
total = cost*quantity + cost2*quantity2 + cost3*quantity3;
std::cout << "Total value:" << total;
}
else {
total = cost*quantity + cost2*quantity2;
std::cout << "Total value:" << total;
}
}
else {
total = cost*quantity;
std::cout << "Total value:" << total;
}
return 0;
}
後的每個項目輸入後,我輸入「Y」,該代碼會以某種方式跳過我的ITEMNAME和輸出輸入「費用(分):」一起「項目名稱:」在同一條線。
我認爲這與getline()函數有關,但我不知道具體是什麼。任何幫助是極大的讚賞。
的可能重複[函數getline不要求輸入?](http://stackoverflow.com/questions/6642865/getline-not-asking-細節for-input) – interjay