嘿,我有一个非常简单的问题要回答。我将数组的元素分配给字符串值。我希望我的代码输出字符串而不是元素值。这是一个例子:
double stock[5] = {249.99,49.99,13.99,449.99,59.99};
double Beats = stock[0];
double iPod = stock[1];
std::cout << "Okay, you purchased " << stock[0] << endl;
我想要的输出是“好的,你买了Beats。” 。我收到的输出是“好的,你买了249.99。”
如何让它打印字符串而不是值?提前谢谢。
答案 0 :(得分:3)
您可能想要某种容器,无论是struct
,class
还是pair
。这是一个例子(使用pair
):
#include <utility>
#include <string>
...
std::pair <std::string,double> stock [5];
stock[0]=std::make_pair("Beats",249.99);
...
std::cout << "Okay, you purchased " << stock[0].first << "." << endl;
这将输出你想要的东西(“好的,你购买了Beats。”)。
您可以使用stock[i].first
访问第一个元素(名称,作为字符串),stock[i].second
访问第二个元素(值,作为双精度)。
答案 1 :(得分:1)
string items[5] = {"Beats", "iPod", "CD", "Vinyl", "Sheet"};
std::cout << "Okay, you purchased " << items[0] << endl;
如果你想保持数字(即stock
),你还需要更复杂的东西。
答案 2 :(得分:-1)
我假设您需要显示已购买的商品以及价格。如果是这样,你可能需要像下面这样的东西。
#include <iostream>
using namespace std;
struct item_struct
{
std::string item;
double price;
item_struct(string _item, double _price)
{
item = _item;
price = _price;
}
};
int main() {
item_struct *stock[5] = {new item_struct("Beats", 249.99),
new item_struct("iPod", 49.99),
new item_struct("CD", 13.99),
new item_struct("iPone", 899.99),
new item_struct("Nexus 5", 499.99)
};
std::cout << "Okay, you purchased " << stock[0]->item << endl;
std::cout << "Okay, you purchased " << stock[3]->item
<< " at the price of " << stock[3]->price
<< endl;
return 0;
}
结果:
Okay, you purchased Beats
Okay, you purchased iPone at the price of 899.99