Использование cin, если оператор и массив не работают - PullRequest
0 голосов
/ 27 июня 2018

Я делаю мини-процессор на C ++, который использует двоичные состояния массива для активации различных событий. Например, массив, чьи 67, 39 и 23-е значения равны 1, может выводить дату. Я проводил тест ввода, где ввод «а» приводил к тому, что первое фактическое значение было бы единичным. Как вы заметили, массив уже начинается с «a», но это показатель определенного раздела ЦП.

Я сделал ВСЕ, что мне сообщали отчеты об ошибках, но они продолжают посылать одинаковые результаты. Если хочешь, я могу отправить отладку.

#include <iostream>
using namespace std;

int main() {
    char var a = 1 

    char myArray = {a, 0, 0, 0, 0, 0, 0, 0, 0};

    char var pushregister;  
    cin >> pushregister;

    if (pushregister == a) {
        myArray = {a, 1, 0, 0, 0, 0, 0, 0, 0}
    };

    cout << myArray;

    return 0;
}

Ответы [ 2 ]

0 голосов
/ 28 июня 2018

Код:

string myArray= "a, 0, 0, 0, 0, 0, 0, 0, 0";
int pushregister; cin >> pushregister;

if (pushregister == a) {
    myArray = "a, 1, 0, 0, 0, 0, 0, 0, 0"; cout << myArray;
}
else {
    cout << "Wrong input" << endl;
}

return 0;
0 голосов
/ 28 июня 2018

Ваш код не похож на C ++.
Вы хотели что-то подобное?

#include <iostream>
#include <cstdint>
#include <cstdlib>


int main()
{
  uint8_t a = 1;
  uint8_t my_array[] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
  static const size_t my_array_capacity =
    sizeof(my_array) / sizeof(my_array[0]);
  my_array[0] = a;

  uint8_t push_register;
  std::cin >> push_register;
  if (push_register == a)
  {
    my_array[1] = 1;
  }

  for (size_t i = 0; i < my_array_capacity; ++i)
  {
    if (i > 0)
    {
      std::cout << ", ";
    }
    std::cout << static_cast<unsigned int>(my_array[i]);
  }
  std::cout << "\n";
  return EXIT_SUCCESS;
}

Некоторые отличия:
1. Массивы не могут содержать переменные, они содержат значения.
2. Используйте [] для доступа к слотам массива.
3. При печати uint8_t приведите к unsigned int, чтобы cout не воспринимал переменную как символ.

...