Basit bir ncurses programına sahip olmak için, getch() ile karakterleri birer birer okur ve bir arabelleğe kopyalar. Sahip olduğum sorun, backspace anahtarının bir basın algılamasıdır. İlgili kod geçerli:ncurses ile backspace kullanma
this is a test^?^?^?
:
while((buffer[i] = c = getch()) != EOF) {
++i;
if (c == '\n') {
break;
}
else if (c == KEY_BACKSPACE || c == KEY_DC || c == 127) {
i--;
delch();
buffer[i] = 0;
}
refresh();
}
Ama bu kodu çalıştırmak çalışırken, bu hattan karakterleri silmeye çalışırken sonra ekranda görünen şeydir "Bu bir denemedir" ve buffer
içerikleri şunlardır: gdb ile
this is a test
biliyorum ki bir silme/backspace kontrol deyimi çağrıldığını edilirse, bu yüzden başka ne ben cha silebilir, böylece yapıyor olmalı racters?
'Bu bir test ^? ^? ^?' 'Buffer' içeriğidir ya da ekranda görünen nedir? Her iki durumda, diğeri nedir? –
'Bu bir test ^? ^? ^?' Terminalde görünen, arabellek '' bir test '' içeriyor. – Jumhyn