Dieses Programm kopiert seinen Eingang in seinen Ausgang und ersetzt TAB (\t
) durch \t
Backspace (\b
) durch \b
. Aber hier in meinem Code kann ich nicht Eingabezeichen lesen, wenn ich die Rücktaste eingeben es nicht ersetzen, wie ein Tab funktioniert.Verstehen des Backspace-Verhaltens ( b) in C
Kompilieren mit GCC in Linux:
#include<stdio.h>
int main(void)
{
int c=0;
while((c=getchar())!=EOF){
if(c=='\t'){
printf("\\t");
if(c=='\b')
printf("\\b");
}
else
putchar(c);
}
return 0;
}
Angenommen, wenn ich vinay (tab) hunachyal
Output:vinay\thunachyal
geben Wenn ich vinay (und 1 Backspace) Typ
Output:vina
So Meine Frage ist, warum vina\b
in diesem Fall nicht gedruckt wird?
Ist es möglich, \b
zu erkennen und \b
zu drucken? wenn nicht, was ist der Grund,
Note:
ich zur Laufzeit Eingang Backspace benötigen keine separate Datei bereitstellt \ b mit
Gibt es eine Möglichkeit, Backspace von Shell gegessen zu vermeiden, ohne separate Datei zu generieren, brauche ich zur Laufzeit Backspace-Schlüssel –
sogar mein Code funktioniert auch Wenn ich 'Vinay \ Thunachyal \ b' | ./a.out, aber meine Abfrage gibt es eine Möglichkeit, Backspace bei d Laufzeit des Programms zu erkennen, wie Registerkarte arbeitet @runtime wie diese Backspace, korrigieren Sie mich, wenn ich falsch bin. –
@vinayhunachyal Ja, dein Programm macht das. Das Problem hier ist einfach, wie Sie die Rücktaste zum Programm bekommen. Die Verwendung von echo, wie oben beschrieben, scheint ein einfacher Ansatz zu sein. – trojanfoe