Supprimer une ligne d'un fichier en c

[Fermé]
Signaler
-
Messages postés
199
Date d'inscription
mardi 26 février 2008
Statut
Membre
Dernière intervention
11 mai 2011
-
Bonjour,
je voudrai savoir comment supprimer une ligne à partir d'un fichier en c qui contient un mot saisit par l'utilisateur .

4 réponses

Messages postés
17
Date d'inscription
lundi 7 avril 2008
Statut
Membre
Dernière intervention
1 décembre 2011
13
tu veux supprimer la ligne à l'interieur d'un fichier ou alors supprimer la ligne dans la fenetre d'excecution ???
Messages postés
199
Date d'inscription
mardi 26 février 2008
Statut
Membre
Dernière intervention
11 mai 2011
10
Soit plus clair !
Tu veux supprimer un mot dans une ligne du fichier?
Tu veux supprimer la ligne du fichier contenant le mot?
?? c'est flou
bonjour,
je veux supprimer la ligne du fichier contenant le mot
Messages postés
199
Date d'inscription
mardi 26 février 2008
Statut
Membre
Dernière intervention
11 mai 2011
10 > khalil
J'ai pas beaucoup de temps mais je pourrai t'aider lundi si c'est trop tard...

Bon weekend a tous !
Messages postés
199
Date d'inscription
mardi 26 février 2008
Statut
Membre
Dernière intervention
11 mai 2011
10
Slt j'ai essayé de faire quelque chose mais bon c'est pas facil avec le langage c !

NB :
Il n'y a pas de fonction de fonction qui permet de supprimer une ligne dans un fichier en c!
On ne peut pas supprimer une ligne directement sur un fichier


Le code suivant supprime le mot trouvé dans le fichier et ajoute le reste dans un deuxieme fichier !
#include<stdio.h>
#include<string.h>

void mot_existe (char *mot);


int main ()
{
  char mot[200];
   
   
  printf ("Mot a rechercher? ");
  scanf ("%s", mot);
  mot_existe (mot);
 
}

void mot_existe (char *mot)
{
  int longueur = strlen (mot);
  int existe = 0;
  char mot_bis[longueur];
  FILE *entree;
  FILE* fOut;//fichier temporaire

  
    entree = fopen ("fichier.txt", "r");
    fOut = fopen("fichierTmp.txt", "w");//fichier de sortie
    do {
      fscanf (entree,"%s",mot_bis);
      if (strcmp(mot_bis,mot)==0){
        printf ("Bravo ! Le mot existe ! \n");
        }
      if (strcmp(mot_bis,mot)!=0)fputs(mot_bis, fOut);
    }while (!feof(entree)); 
   
   fclose(entree);
   fclose(fOut);
   if(!existe) printf ("Le mot %s n'existe pas!\n",mot);

   
  
 
   
}//mot_exite


Toutefois le lien ci-dessous pourrait t'aider d'avantage
https://c.developpez.com/faq/?page=Les-fichiers-et-les-dossiers#FICHIERS_sup_ligne

Bonne chance...
Messages postés
199
Date d'inscription
mardi 26 février 2008
Statut
Membre
Dernière intervention
11 mai 2011
10
J'ai vu qu'il existe des tableaux a 2 dimensions dans ce langage...
Ca pourrait etre interessant pour recuperer la ligne dans la premiere case et ensuite le mot dans le second:) !

Essaie de te renseigner moi je vais voir de mon coté !

ps : dsl je ne fais plus de c depuis 8 ans