Вы можете принимать бесконечные пользовательские вводы, если вы не знаете размер, и выходить по определенному слову. Вот пример кода. Обратите внимание, что сразу после getline(cin, product, ',')
я разместил оператор if
. Если пользователь введет exit,
в этот момент, программа закроется.
Я также использовал векторы. Векторы похожи на массивы, но их размер можно изменять во время выполнения, поэтому вы можете хранить в нем бесконечные (столько, сколько ваша память) данные.
Последняя часть отображает вывод.
Это примерный способ решения проблемы, вы можете применить любой понравившийся метод.
#include <iostream>
#include <string>
#include <vector>
std::string product;
std::string price;
std::vector<std::string> products;
std::vector<int> prices;
int main()
{
unsigned num = 0;
while (true)
{
getline(std::cin, product, ',');
if(product == "exit")
break;
getline(std::cin, price, ';');
products.push_back(product);
prices.push_back(atoi(price.c_str()));
num++;
}
for(unsigned i = 0; i < products.size(); i++)
{
std::cout << "Product: " << products.at(i) << "\n";
std::cout << "Price : " << prices.at(i) << "\n";
}
}
Входные данные, которые я использовал:
orange juice,5;milk,7;exit,
Выпущено продукции:
Product: orange juice
Price : 5
Product: milk
Price : 7