2016-05-08 18 views
5

Quale funzione in C++ inserisce la stringa nella console, con modifica delle abilità? Ho tale stato di console: enter image description hereInserisci la stringa nella console, con possibilità di modifica

Dopo il lavoro della funzione necessaria voglio vedere questo:

enter image description here

ma non questa:

enter image description here

+0

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. –

+0

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. –

+0

È possibile creare un programma che preme i tasti, la finestra di cmd deve essere focalizzata sebbene –

risposta

2

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.

+0

Ciò potrebbe consentire all'utente di modificare ciò che viene visualizzato, ma non verrà inviato come input quando preme Invio. – Barmar

+0

@Barmar Gli ho appena mostrato un esempio, OP può manipolare la stringa aggiungendo e cancellando. Modificato il codice –

Problemi correlati