Невозможно сохранить элементы в векторе после логического цикла "делать пока" - PullRequest
1 голос
/ 25 марта 2020

Я нахожусь в процессе создания bitcoin управляющей программы для вводного класса CS, и вот мои цели (только упомянутые, которые мне нужны в этом контексте): Мне удалось выполнить следующие задачи. Моя программа имеет 4 пункта меню, хранящихся в классе menu. Пользователь может выбрать один из следующих вариантов:

  1. Найти текущее значение Bitcoin в долларах США.
  2. Покупка / продажа Bitcoin
  3. Печать текущего баланса
  4. Печать истории транзакций

Допустим, пользователь выбор варианта 2 и ввод, сколько пользователь хочет продать или купить. До сих пор программа будет делать следующее:

  • вычисляет, сколько стоит bitcoin (случайным образом генерируется от 5k до 7k за 1 BT C)
  • извлекает, сколько пользователь хочет купить в долларах США
  • , преобразует значение в долларах США в BT C в классе wallet и извлекает текущую дату транзакции из класса getLive.
  • Затем эти два значения преобразуются в тип string и передаются в функцию void bitcoinHistory(string bitcoinAmnt, string date)

В настоящее время у меня возникают проблемы со следующим шагом:

  • ... и сохранение двух строк в классе с именем ledger и распечатка истории транзакций. Пользователь может совершить столько транзакций, сколько пожелает.

До сих пор я пытался создать вектор и пытался использовать push_back.() каждый раз, когда функция Позвонил.

class ledger        // the log of all transactions
                    //1) It will store the transaction strings just so we have
                    //a record of the buy sell commands
                    //2) It will be able to print out the transaction history if requested

{
      public:
        vector<string> bitcoin;

        void bitcoinHistory(string bitcoinAmnt, string date)        
        {                                                          
            string btc, time;
            btc = bitcoinAmnt;
            time = date;

            bitcoin.push_back(btc + "BTC on " + time);

            for (unsigned int x = 0; x < bitcoin.size(); x++)
            {

                cout << bitcoin[x] << endl;

            }
            repeat = true;                          \\ boolean returns the user back to main menu             

Пример результата из cout << bitcoin[x] Я успешно смог получить: 0.035349BTC on Wed Mar 25 01:44:02 2020

Однако, как только программа зациклена, предыдущие транзакции, кажется, не сохранить, и элемент, кажется, заменен более новыми данными транзакции. Несмотря на несколько транзакций, bitcoin.size(), похоже, сбрасывается, и я вижу только вывод только одной истории транзакций. Я не могу понять, почему. Если вы хотите увидеть больше кода, пожалуйста, дайте мне знать. Спасибо.

...