Untitled

mail@pastecode.io avatar
unknown
plain_text
7 months ago
2.3 kB
3
Indexable
Never
#include <iostream>
#include <fstream>
#include <sstream>
#include <vector>

struct Order
{
    std::string datetime;
    std::string cryptocurrency;
    std::string action; // Either chooses bid or ask depending on row
    double high;
    double low;
};

class OrderBook
{
private:
    std::vector<Order> orders;

public:
    void addOrder(const std::string &datetime, const std::string &crypto, const std::string &action, double high, double low)
    {
        orders.push_back({datetime, crypto, action, high, low});
    }

    void displayTradeInfo(int row) const
    {
        if (row >= 0 && row < orders.size())
        {
            const Order &trade = orders[row];
            std::cout << "Row " << row << ":\n"
                      << "Date and Time: " << trade.datetime << "\n"
                      << "Cryptocurrency: " << trade.cryptocurrency << "\n"
                      << "Action: " << trade.action << "\n"
                      << "High: " << trade.high << "\n"
                      << "Low: " << trade.low << "\n";
        }
        else
        {
            std::cout << "Invalid row position.\n";
        }
    }

    void getOrdersFromCSV(const std::string &filename)
    {
        std::ifstream file(filename);
        if (!file.is_open())
        {
            std::cout << "Failed to open file: " << filename << "\n";
            return;
        }

        std::string line;
        while (std::getline(file, line))
        {
            std::istringstream iss(line);
            std::vector<std::string> tokens;

            // Using Commas to split our csv
            std::string token;
            while (std::getline(iss, token, ','))
            {
                tokens.push_back(token);
            }

            // Making sure we have enough tokens
            if (tokens.size() == 5)
            {
                addOrder(tokens[0], tokens[1], tokens[2], std::stod(tokens[3]), std::stod(tokens[4]));
            }
            else
            {
                std::cout << "Error parsing line: " << line << "\n";
            }
        }

        file.close();
    }
};

int main()
{
    OrderBook orderBook;
    orderBook.getOrdersFromCSV("20231124.csv");
    orderBook.displayTradeInfo(5);

    return 0;
}
Leave a Comment