[C] Compréhension

Salut a tous !
Exercice 1-10.Ecrivez un programme qui copie son entrée sur sa sortie en remplaçant les tabulations par \t, les caractéres de retour en arriére par \b et les backslashs par \\. Cela visualise les tabulations et les retours en arriére sans ambiguïté

Je ne vous demande pas la réponse !
Je ne comprend pas trop la consigne ...
il faut que, si par exemple on ecrit :

Comment          ça\marche

en entrée , il faut :
Comment\tça\\marche

en sortie ???
D'avance merci !
--
Max

3 réponses

  • Votes
  • Date
  • Date décroissante
  1. Modérateur
    Oui en fait les tabulations sont exprimées comme ceci:
    \t

    '\t' est un caractère spécial.
    Mais si tu veux afficher réellement \t au lieu de le laisser être interpété comme uen tabulation, alors il faut l'echapper avec un antislash comme ceci:
    \\t
    1. J'ai fait sa :
      #include <stdio.h>
      #include <stdlib.h>
      
      int main()
      {
          int c;
          while((c=getchar())!=EOF)
          {
                                   if(c=='\t')
                                              printf("\\t");
                                   if(c=='\b')
                                              printf("\\b");
                                   if(c=='\\')
                                             printf("\\");
                                   putchar(c);
                                   
          }
          system("pause");
      }
      

      sa marche ( enfin je pense ... )
      mais c'est quoi des "caractéres de retour en arriére" et comment en entrer ??pour qu'il les remplace par \b
      1. Modérateur
        Je dirais plutôt:
        #include <stdio.h>
        #include <stdlib.h>
        
        int main()
        {
            int c;
            while((c=getchar())!=EOF)
            {
                                     if(c=='\t')
                                                printf("\\t");
                                     else if(c=='\b')
                                                printf("\\b");
                                     else if(c=='\\')
                                               printf("\\");
                                     else
                                               putchar(c);
                                     
            }
            system("pause");
        }