Функция считывания символов из консоли getchar не работает корректно

Считываю данные, которые пользователь вводит в консоли. Однако, считывание происходит только один раз. А именно, ниже, в buf[i] = getchar() запись произойдёт только после первого прохода цикла. Как сделать так, чтобы ввод происходил постоянно?

    unsigned int N = 10, delta=10, i = 0;
    char* buf = (char*) malloc (sizeof(char)*N);
    memset(buf, 0, N);
    while (1)  {
        buf[i] = getchar();
        if(buf[i] == 27)
            break;

        if(buf[i] == 10){
            i=0;
            bzero(buf, sizeof(buf));
        }
        i++;
        if (i >= N) {
            N += delta;
            buf = (char*) realloc (buf, sizeof(char)*N);
        }
    }

Ответы (0 шт):