non può essere fatto in modo nativo sul terminale, devi farlo nel tuo flusso di controllo.
Un piccolo esempio
string text("Hello, World")
cout << text;
char x = getch();
while (x != '\n') { //loop breaks if you press enter
if (x == 127 || x == 8) { //for backspace(127) and delete(8) keys
cout << "\b \b"; //removes last character on the console
text.erase(text.size() - 1);
}
else {
cout << x;
text.append(x);
}
x = getch();
}
"\b"
è backspace distruttiva. cioè sposta il cursore all'indietro ma non cancella. "\b \b"
è backspace distruttivo.
fonte
2016-05-08 07:19:14
Utilizzando la funzionalità standard non c'è modo di farlo. Non credo ci sia alcuna [funzione di console in Windows] (https://msdn.microsoft.com/en-us/library/windows/desktop/ms682073 (v = vs.85) .aspx) per fare esattamente ciò che voglio secondo le tue immagini. Potresti farlo se gestisci i tasti e modifichi te stesso, ma non con il prompt standard. –
CMD è un programma che utilizza la console. Non è la console. Rimuovi i tag CMD poiché la tua domanda non ha nulla a che fare con CMD. –
È possibile creare un programma che preme i tasti, la finestra di cmd deve essere focalizzata sebbene –