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 :

Programme qui supprime deux espaces à chaque ligne dans un fichier


Sujet :

C

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2011
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2011
    Messages : 71
    Points : 39
    Points
    39
    Par défaut Programme qui supprime deux espaces à chaque ligne dans un fichier
    Bonjour,
    Je dois créer un programme (un simple main.c en interface console) qui supprime deux espaces pour chaque début de ligne dans un fichier.
    Si une ligne ne comporte pas d'espace, il va directement à la ligne suivante jusqu'au bout du fichier.
    Après le programme doit réenregistrer le contenu du fichier dans un nouveau fichier qui comporte le même nom que l'ancien, mais en changent l'extension par .modif

    Le problème est que je n'arrive pas à faire cet exercice.
    Avez-vous un exemple de code qui fait cela ?

    Merci d'avance

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 388
    Points : 23 707
    Points
    23 707
    Par défaut
    Bonjour,

    Si c'est un exercice et que tu débutes, tu peux déjà fixer une taille arbitraire maximum pour tes lignes. Disons 1024 caractères, par exemple. De là, tu alloues un buffer dans ton main() :


    … tu ouvres ton fichier avec fopen() et tu lis tes lignes avec fgets(). Cette dernière fonction te lira à chaque fois une chaîne en la terminant par un « \0 » (caractère nul).

    De là, tu peux indexer ta chaîne comme si c'était un tableau. Il te suffit donc de regarder si buffer[0]==' ' et buffer[1]==' '. Tu n'as même pas besoin de te soucier de la fin de ta chaîne qui sera interprété comme un caractère différent de ' ' (espace).

    Si c'est le cas, tu lis directement ta chaîne à partir de deux caractères plus loin, donc buffer+2, sinon tu réécris à partir de buffer, pour renvoyer la chaîne dans son intégralité.

Discussions similaires

  1. [XL-2010] Ecrire en bout de chaque ligne dans un fichier texte
    Par gobgobnob dans le forum Excel
    Réponses: 2
    Dernier message: 22/05/2014, 08h26
  2. Réponses: 5
    Dernier message: 20/01/2014, 16h42
  3. [Free Pascal] Programme qui supprime les espaces inutiles dans une chaîne
    Par joreveur dans le forum Free Pascal
    Réponses: 18
    Dernier message: 24/08/2012, 16h51
  4. [VBS] Fonction qui compte le nombre de lignes dans un fichier texte
    Par ProgElecT dans le forum Vos Contributions VBScript
    Réponses: 0
    Dernier message: 03/05/2012, 13h48
  5. Supprimer un bloc de lignes dans un fichier ldif
    Par g56589 dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 16/09/2008, 21h36

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