Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1100 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [C] Un programme qui remplace les backspaces par \b

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C] Un programme qui remplace les backspaces par \b

n°235817
Marnie
Posté le 28-10-2002 à 12:02:11  profilanswer
 

L'exo 1-10 de K&R demande de faire une copie de l'entrée sur la sortie en remplaçant les backspaces par \b. Je vois pas comment faire un getchar() d'un backspace.


---------------
Prison d'été, prison d'hiver, prison d'automne et de printemps, bagne pour petits et grands - Prévert, Le Roi et l'Oiseau
mood
Publicité
Posté le 28-10-2002 à 12:02:11  profilanswer
 

n°235860
Marnie
Posté le 28-10-2002 à 13:49:52  profilanswer
 

Code :
  1. #include <stdio.h>
  2. int main()
  3. {
  4.     char c;
  5.     while((c=getchar()) != 'f')
  6.     {
  7.         if(c=='\t')
  8.         {
  9.                 putchar('\\');
  10.                 putchar('t');
  11.         }
  12.         else if(c=='\b')
  13.         {
  14.                 putchar('\\');
  15.                 putchar('b');
  16.         }
  17.         else if(c=='\\')
  18.         {
  19.                 putchar('\\');
  20.                 putchar('\\');
  21.         }
  22.         else putchar(c);
  23.     }
  24.     getchar();
  25.     return 0;
  26. }


Pour \t et \\ ça marche très bien, mais pour \b :heink:


---------------
Prison d'été, prison d'hiver, prison d'automne et de printemps, bagne pour petits et grands - Prévert, Le Roi et l'Oiseau
n°235888
Cherrytree
cn=?
Posté le 28-10-2002 à 14:17:21  profilanswer
 
n°235889
HappyHarry
Posté le 28-10-2002 à 14:18:55  profilanswer
 

ben en fait pour le backspace ca dépend de l'os, il se peut qu'il soit intercepté et donc ne jamais arriver a ton programme
 
edit : le dernier getchar() il sert a quoi ?


Message édité par HappyHarry le 28-10-2002 à 14:19:21
n°235892
Marnie
Posté le 28-10-2002 à 14:21:59  profilanswer
 

Cherrytree -> Ben ça marche pas !  :kaola:


Message édité par Marnie le 28-10-2002 à 14:22:37

---------------
Prison d'été, prison d'hiver, prison d'automne et de printemps, bagne pour petits et grands - Prévert, Le Roi et l'Oiseau
n°235894
Cherrytree
cn=?
Posté le 28-10-2002 à 14:23:28  profilanswer
 

HappyHarry a écrit a écrit :

ben en fait pour le backspace ca dépend de l'os, il se peut qu'il soit intercepté et donc ne jamais arriver a ton programme
 
edit : le dernier getchar() il sert a quoi ?



C'est pour que la fenêtre 'command.com' reste ouverte, ça cause du compilateur (dev C++) qu'on utilise à la maison, c'est pour pouvoir voir l'output du programme.

n°235897
Marnie
Posté le 28-10-2002 à 14:25:01  profilanswer
 

HappyHarry a écrit a écrit :

ben en fait pour le backspace ca dépend de l'os, il se peut qu'il soit intercepté et donc ne jamais arriver a ton programme



Donc sous Unix ça peut marcher ?


---------------
Prison d'été, prison d'hiver, prison d'automne et de printemps, bagne pour petits et grands - Prévert, Le Roi et l'Oiseau
n°235900
HappyHarry
Posté le 28-10-2002 à 14:26:21  profilanswer
 

Cherrytree a écrit a écrit :

C'est pour que la fenêtre 'command.com' reste ouverte, ça cause du compilateur (dev C++) qu'on utilise à la maison, c'est pour pouvoir voir l'output du programme.




 
ben ca sert a rien

n°235904
Marnie
Posté le 28-10-2002 à 14:29:11  profilanswer
 

HappyHarry a écrit a écrit :

 
 
ben ca sert a rien



Ben si. Si la fenêtre disparaît je peux pas vérifier que mon programme marche.


---------------
Prison d'été, prison d'hiver, prison d'automne et de printemps, bagne pour petits et grands - Prévert, Le Roi et l'Oiseau
n°235905
Cherrytree
cn=?
Posté le 28-10-2002 à 14:33:22  profilanswer
 

HappyHarry a écrit a écrit :

 
 
ben ca sert a rien



Si, et c'est même une astuce de la FAQ de DevC++.

mood
Publicité
Posté le 28-10-2002 à 14:33:22  profilanswer
 

n°235910
HappyHarry
Posté le 28-10-2002 à 14:41:36  profilanswer
 

ben j'viens de tester et ca marche tres bien sans chez moi
 
et pis de toutes facons tu vas faire un getchar() tant que le caractere lu n'est pas 'f', le dernier getchar ne sert donc a rien


Message édité par HappyHarry le 28-10-2002 à 14:43:43
n°235915
Cherrytree
cn=?
Posté le 28-10-2002 à 14:48:09  profilanswer
 

HappyHarry a écrit a écrit :

ben j'viens de tester et ca marche tres bien sans chez moi
 
et pis de toutes facons tu vas faire un getchar() tant que le caractere lu n'est pas 'f', le dernier getchar ne sert donc a rien



Tu testes dans la console ou bien directement dans l'environnement de développement ? Parce que dans EDI, quand on compile et exécute, il lance le soft, fait les traitements, puis dès que l'exécution se termine, la console est fermée (je parle bien de la console que DevC++ ouvre pour l'occasion).

n°235917
Cherrytree
cn=?
Posté le 28-10-2002 à 14:51:10  profilanswer
 

Cela dit, dans ce programme ça ne sert pas. Contre exemple :
 

Code :
  1. #include <stdio.h>
  2. int main() {
  3.     printf("Hello\n" );
  4. }


 
Là, par contre ça sert.

n°235925
HappyHarry
Posté le 28-10-2002 à 14:56:32  profilanswer
 

Cherrytree a écrit a écrit :

Cela dit, dans ce programme ça ne sert pas. Contre exemple :
 

Code :
  1. #include <stdio.h>
  2. int main() {
  3.     printf("Hello\n" );
  4. }


 
Là, par contre ça sert.




 
la je suis d'accord, mais faut pas le mettre a toutes les sauces ;)
 
cela dit pour faire windows-style tu peux faire un system("pause" );

n°235928
Cherrytree
cn=?
Posté le 28-10-2002 à 14:59:55  profilanswer
 

HappyHarry a écrit a écrit :

 
 
la je suis d'accord, mais faut pas le mettre a toutes les sauces ;)
 
cela dit pour faire windows-style tu peux faire un system("pause" );



:jap: J'en parle à ma mie dès qu'elle revient.

n°235935
Marnie
Posté le 28-10-2002 à 15:05:32  profilanswer
 

Ah ouais ! Génial.  [:yes papa !!!]


---------------
Prison d'été, prison d'hiver, prison d'automne et de printemps, bagne pour petits et grands - Prévert, Le Roi et l'Oiseau
n°236317
Musaran
Cerveaulté
Posté le 29-10-2002 à 01:21:09  profilanswer
 

Du bon usage des structures:

Code :
  1. for(;;){
  2. switch(getchar()){
  3.  case '\t':
  4.  case '\b':
  5.  case '\\':
  6.    putchar('\\'); putchar(c); break;
  7.  case EOF:
  8.  case 'f':
  9.   return 0;
  10. }
  11. }


---------------
Bricocheap: Montage de ventilo sur paté de mastic silicone
n°236322
Cherrytree
cn=?
Posté le 29-10-2002 à 01:42:19  profilanswer
 

Musaran a écrit a écrit :

Du bon usage des structures:

Code :
  1. for(;;){
  2. switch(getchar()){
  3.  case '\t':
  4.  case '\b':
  5.  case '\\':
  6.    putchar('\\'); putchar(c); break;
  7.  case EOF:
  8.  case 'f':
  9.   return 0;
  10. }
  11. }





Sûr, c'est plus propre. Juste que dans le K&R, Marnie n'a pas encore abordé switch. :D [:ddr555]  [:zebra33]


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [C] Un programme qui remplace les backspaces par \b

 

Sujets relatifs
Lancer un programme en tache de fond ?[HELP NEEDED] programme permettant la gestion d'un emploi du temps
un petit programme internet[Visual Basic]: Besoin d'un peu d'aide pour un programme à l'école.
Il n'y a plus de target="" avec les a? On remplace par quoi alors?On programme en quoi sur calculatrice ti-82???
prob C étrange : programme qui marche et personne ne comprend pourquoiprogramme en C++ : filtre médian
comment changer un nom au demarage d'un programme fé en c++ visual baspb lors de l excecution d un programme
Plus de sujets relatifs à : [C] Un programme qui remplace les backspaces par \b


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR