在C ++中输出分配给double数组中元素的字符串

时间:2015-07-14 03:12:03

标签: c++ arrays

嘿,我有一个非常简单的问题要回答。我将数组的元素分配给字符串值。我希望我的代码输出字符串而不是元素值。这是一个例子:

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。”

如何让它打印字符串而不是值?提前谢谢。

3 个答案:

答案 0 :(得分:3)

您可能想要某种容器,无论是structclass还是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