输出一个赋值给c++双精度数组元素的字符串

Output a string thats assigned to an element in a double Array in C++

本文关键字:双精度 c++ 数组元素 字符串 赋值 一个 输出      更新时间:2023-10-16

嘿,我有一个很简单的问题要回答。我将数组中的元素赋值为字符串值。我希望我的代码输出字符串而不是元素值。下面是一个例子:

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;

我想要的输出是"ok,你购买了Beats。"。我收到的输出是"好的,您购买了249.99。"

我如何使它打印字符串而不是值?

您可能需要某种容器,可能是struct, classpair。下面是一个示例(使用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访问第二个元素(值,作为双精度类型)。

string items[5] = {"Beats", "iPod", "CD", "Vinyl", "Sheet"};
std::cout << "Okay, you purchased " << items[0] << endl;

如果你还想维护数字(即stock),你需要一些更复杂的东西

我假设您需要显示已购买的商品和价格。如果是这样,你可能需要以下内容:

#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