Supprimer une ligne d'un fichier en c

Fermé
khalil - 9 avril 2008 à 23:50
velderama Messages postés 199 Date d'inscription mardi 26 février 2008 Statut Membre Dernière intervention 11 mai 2011 - 14 avril 2008 à 13:20
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 lundi 7 avril 2008 Statut Membre Dernière intervention 1 décembre 2011 13
10 avril 2008 à 00: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 mardi 26 février 2008 Statut Membre Dernière intervention 11 mai 2011 10
10 avril 2008 à 12:12
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
bonjour,
je veux supprimer la ligne du fichier contenant le mot
0
velderama Messages postés 199 Date d'inscription mardi 26 février 2008 Statut Membre Dernière intervention 11 mai 2011 10 > khalil
11 avril 2008 à 14:55
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 mardi 26 février 2008 Statut Membre Dernière intervention 11 mai 2011 10
14 avril 2008 à 11:47
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 mardi 26 février 2008 Statut Membre Dernière intervention 11 mai 2011 10
14 avril 2008 à 13:20
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