使用cin,if语句和数组不起作用

时间:2018-06-27 20:35:56

标签: c++ arrays if-statement cin cpu-registers

我正在用C ++制作一个微型CPU,它使用数组的二进制状态来激活不同的事件。例如,第67、39和23个值为1的数组可能会输出日期。我正在做一个输入测试,输入“ a”会使第一个实际值成为1。如您所见,该数组已经以“ a”开头,但这表示CPU的特定部分。

我做了所有错误报告要求我做的事情,但是他们继续发送相同的结果。如果需要,我可以发送调试信息。

#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 :(得分:1)

您的代码看起来不像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将变量视为字符。

答案 1 :(得分:0)

代码:

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;