IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Supprimer certains caractères dans un fichier


Sujet :

C

  1. #1
    Futur Membre du Club
    Homme Profil pro
    .
    Inscrit en
    Juin 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Juin 2015
    Messages : 8
    Points : 8
    Points
    8
    Par défaut Supprimer certains caractères dans un fichier
    Bonsoir tout le monde, je suis en train de créer un programme pour supprimer l’occurrence de certains caractères dans un fichier. Je me suis basé sur la boucle suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
           int car;
           FILE* f = fopen("dico.dat", "r+");
     
           if(!f)
           {
                 perror("fopen");
                 exit(EXIT_FAILURE);
           }
     
           while((car = fgetc(f)) != EOF)
                if(strchr("&-_~[](){}\\\"%^!/:.;?!", car))
                     fprintf(f, "\b");
    Le comportement est vraiment bizarre, car quand je fais un "cat dico.dat" dans mon Shell, ça a bien enlevé toutes les occurrences des caractères mais quand je l'ouvre dans vim, ils sont toujours là... Mais il y-a tout de même un changement (l'apparition de "^H" devant chaque occurrence des ces caractères).

    Si quelqu'un pourrait m'aiguiller, je lui en serait reconnaissant

  2. #2
    Membre éclairé
    Profil pro
    Ingénieur sécurité
    Inscrit en
    Février 2007
    Messages
    574
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2007
    Messages : 574
    Points : 751
    Points
    751
    Par défaut
    Salut,

    cat n'affiche pas les caracteres non-imprimable par default. Utilise cat -e tu auras le meme resultat que vim.

    Si tu veux supprimer les caracteres, il faut que tu ecrives le resultat dans un nouveau fichier. Si tu veux les remplacer, il faut utiliser tell().

    Bon courage

  3. #3
    Futur Membre du Club
    Homme Profil pro
    .
    Inscrit en
    Juin 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Juin 2015
    Messages : 8
    Points : 8
    Points
    8
    Par défaut
    Merci beaucoup

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. supprimer certains caractères dans une chaine
    Par rene10 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 31/12/2009, 12h26
  2. supprimer un caractère dans un fichier
    Par koma777 dans le forum Débuter
    Réponses: 4
    Dernier message: 14/11/2008, 23h18
  3. Réponses: 5
    Dernier message: 19/01/2007, 23h53
  4. [LG]supprimer un enregistrement dans un fichier
    Par Marcus2211 dans le forum Langage
    Réponses: 10
    Dernier message: 17/11/2003, 01h59
  5. Supprimer une ligne dans un fichier
    Par sbeu dans le forum Langage
    Réponses: 3
    Dernier message: 13/05/2003, 11h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo