[C] Compréhension

Maxg59 Messages postés 275 Statut Membre -  
kilian Messages postés 8854 Statut Modérateur -
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 !

3 réponses

kilian Messages postés 8854 Statut Modérateur 1 526
 
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
0
Maxg59 Messages postés 275 Statut Membre 27
 
Meeerrrrrcciiiiiiiii !!!!!
0
Maxg59 Messages postés 275 Statut Membre 27
 
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
0
kilian Messages postés 8854 Statut Modérateur 1 526
 
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");
}
0