Comprendre la touche retour arrière (\b) comportement en C
Ce programme copie de son entrée à sa sortie, en remplacement de l'ONGLET(\t
) par \t
la touche retour arrière(\b
) par \b
.
Mais ici, dans mon code je n'arrive pas à lire les caractères d'entrée quand je ne touche retour arrière de son non-remplacement d'un onglet travaux .
De la compilation avec GCC sous 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;
}
Suppose que si j'type de vinay (onglet) hunachyal
Output:vinay\thunachyal
Si j'type de vinay(et 1 retour)
Output:vina
Donc ma requête est pourquoi vina\b
n'est pas l'impression dans ce cas?
Est-il possible de détecter \b
et imprimer \b
? si non quel est la raison
Note:
J'ai besoin au moment de l'exécution de l'entrée de la touche retour arrière ne fournissant pas de fichier séparé avoir \b
OriginalL'auteur vinay hunachyal | 2013-09-04
Vous devez vous connecter pour publier un commentaire.
Le retour arrière est consommée par le shell interprète, de sorte que votre programme ne sera jamais le voir, votre code est (légèrement) cassé, en raison de égarés accolades, pas aidé par la mauvaise indentation.
Ici est une version corrigée:
qui fonctionne comme prévu:
même mon code fonctionne aussi Si je echo 'vinay\thunachyal\b' | ./un.hors, mais ma requête est-il un moyen de détecter la touche retour arrière à d, de l'exécution du programme de l'onglet de travail @runtime comme celle de retour arrière, corrigez-moi si je suis mal.
Oui, votre programme est en train de faire. La question ici est simplement de savoir comment vous obtenez la touche de retour arrière pour le programme. À l'aide de
echo
, comme ci-dessus semble une approche simple.OriginalL'auteur trojanfoe
Si je n'ai pas mal interprété la question, vous pouvez utiliser "Ctrl-H" pour envoyer un retour arrière. À l'aide de trojanfoe du code corrigé, lorsque vous tapez:
Il apparaîtra à l'impression:
^H signifie "Ctrl-H', c'est le caractère ASCII #8, qui est de retour arrière.
OriginalL'auteur user3639467