Я разрабатываю программу, которая использует malloc
и realloc
функции для увеличения буфера указателя в режиме реального времени, когда пользователь вводит строку.Предотвращать нажатие кнопки возврата
Проблема в том, что я хочу, чтобы пользователь не ударил Backspace, чтобы исправить ввод. Можно ли заблокировать Blackspace ключ как-то в C при использовании getche()
?
Моя последняя программа будет иметь два входа: один без Backspace (вы не можете вернуться назад), а другой с Backspace. (вы можете исправить ввод, а затем нажать Enter).
char *szString;
char *tmp;
int i = 0;
char c;
szString = '\0';
szString = malloc(1);
printf("Enter a string: ");
while ((c = getche()) != '\r')
{
if(c = 0x08) // BackSpace
{
//
}
szString[i] = c;
i++;
tmp = realloc(szString, i+1);
szString = tmp;
}
szString[i] = '\0';
printf("\nYou typed: %s", szString);
'szString = '\ 0';' должен дать вам предупреждение от целочисленного указателя и 'malloc' на следующей строке делает его избыточным ... – Kninnug