Я не могу изменить глобальную переменную - PullRequest
0 голосов
/ 25 марта 2020

как моя первая C программа, я пытаюсь сделать LM C. Проблема в том, что я хочу изменить глобальную переменную (input_temp), но каждый вывод, который я делаю, выдает мне 0. Я не видел ни одного поста, который мог бы мне помочь. Как я могу это исправить?

char input_temp[3];

void INPOUT(){
    /*If the argument is '01', copies the value from the "in box" onto the accumulator.
    If the argument is '02', copies the value from the accumulator to the "out box".*/
    switch(ADD){
        case 1:
            scanf("%3d", input_temp);
            printf("input_temp");
            printf(input_temp);
            printf(">\n");
            ACC = atoi(input_temp);
            printf("ACC: %d\n", ACC);
            break;
        case 2:
            printf("%3d\n", ACC);
            break;
        default:
            fprintf(stderr, "Error: on instruction %d: instruction '9' can only be used with arguments '01' and '02'", PC);
            exit(IO_ERROR);
    }
}

Вывод:

input_temp>
ACC: 0

Ответы [ 2 ]

0 голосов
/ 25 марта 2020
    scanf("%3s", input_temp);
    printf("input_temp");
    printf("%s", input_temp);
    printf(">\n");
    char * var = input_temp;
    printf("ACC: %s\n", var);

Это должно сделать работу!

0 голосов
/ 25 марта 2020

измените ваш scanf на

  scanf("%3s", input_temp);

и input_temp на

  char input_temp[4];

один для NULL.

...