Supprimer une ligne d'un fichier en c

khalil -  
velderama Messages postés 199 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
je voudrai savoir comment supprimer une ligne à partir d'un fichier en c qui contient un mot saisit par l'utilisateur .
A voir également:

4 réponses

7seven Messages postés 17 Date d'inscription   Statut Membre Dernière intervention   13
 
tu veux supprimer la ligne à l'interieur d'un fichier ou alors supprimer la ligne dans la fenetre d'excecution ???
0
velderama Messages postés 199 Date d'inscription   Statut Membre Dernière intervention   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
0
khalil
 
bonjour,
je veux supprimer la ligne du fichier contenant le mot
0
velderama Messages postés 199 Date d'inscription   Statut Membre Dernière intervention   10 > khalil
 
J'ai pas beaucoup de temps mais je pourrai t'aider lundi si c'est trop tard...

Bon weekend a tous !
0
velderama Messages postés 199 Date d'inscription   Statut Membre Dernière intervention   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...
0
velderama Messages postés 199 Date d'inscription   Statut Membre Dernière intervention   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
0