Функция считывания символов из консоли 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);
}
}