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 pour créer des fichiers


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 16
    Par défaut Programme pour créer des fichiers
    Bonjour a tous,
    j'aurais besoin d'aide. Je suis entrain de coder un programme qui demande le nom du fichier a créer et le nombre de fichier a créer.
    je bloque car je n'arrive pas a créer plusieurs fichiers portants le meme nom mais avec un numero corespondant au fichier(ex:fichier1,fichier2...)
    voila mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    #include <stdio.h>
    #include <stdlib.h>
     
    int main(int argc, char *argv[])
    {
       FILE* Fichier=NULL;
       char nomDuFichier[30];
     
       printf("Entrez le nom du fichier à créer : ");
       scanf("%s", nomDuFichier);
       fopen (nomDuFichier, "w");
     
       return 0;
    }
    On m'a conseiller d'utiliser fgets et clean seulement je ne sais comment les utiliser et a quel endroit dans mon code.
    Merci de m'aider.

  2. #2
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Par défaut
    Utilise la balise code.

    Tu utilises très mal fopen, la fonction retourne un flux de fichier FILE*, et tu ne t'en sers même pas. Tu ne testes pas sa valeur de retour. De plus, tu ne le détruis même pas (via fclose).

  3. #3
    Membre Expert
    Avatar de hiko-seijuro
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 011
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 011
    Par défaut
    Salut

    Bonjour a tous,
    j'aurais besoin d'aide. Je suis entrain de coder un programme qui demande le nom du fichier a créer et le nombre de fichier a créer.
    Je ferai un truc dans ce style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    #include <stdio.h> 
    #include <stdlib.h>   
    int main(int argc, char *argv[]) 
    { 
       FILE* Fichier=NULL; 
       char nomDuFichier[30];   
       int nNbfic, nIndex;
     
       printf("Entrez le nom du fichier à créer : "); 
       scanf("%s", nomDuFichier); 
     
       printf("Saisissez le nombre de fichiers à créer : ");
       scanf("%d", &nNbFic);
    je bloque car je n'arrive pas a créer plusieurs fichiers portants le meme nom mais avec un numero corespondant au fichier(ex:fichier1,fichier2...)
    Je ferai comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    for (nIndex=1; nIndex <= nNbFic; nIndex++)
    {
        if ((fichier = fopen(nomDuFichier, "w")) != NULL)  
        {
             // Traitement d'écriture
            fclose();
        }
        else
        {
             printf("erreur création fichier : %s\n", nomDuFichier);
        }
    }
    On m'a conseiller d'utiliser fgets et clean seulement je ne sais comment les utiliser et a quel endroit dans mon code.
    pour créer et donc écrire ca me parait douteux d'utiliser un fgets

  4. #4
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Par défaut
    Salut

    Pour lire le nom du fichier et le nombre de fichiers à créer, il faut effectivement utiliser un fgets:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    // lecture du nom de fichier
    fgets(nom, sizeof nom, stdin);
     
    // lecture du nombre de fichier à créer
    fgets(tmp, sizeof tmp, stdin);
    nb = strtol(tmp, NULL, 10);
    On suppose evidemment que nom, et tmp sont des tableaux de caractères.

    Pour la création des noms de fichiers à créer, il faut une boucle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    for(i = 0; i < nb; i++)
    {
        char nomfichier[256];
        FILE *f;
        sprintf(nomfichier, "%s%d", nom, i+1);
        if ((f = fopen(nomfichier, "w")) == NULL)
        {
            fprintf(stderr, "Pb création de %s\n", nomfichier);
            // eventuellement autre chose à faire
        }
        else
           fclose(f);
        }
    }
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  5. #5
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par Trap D
    Pour lire le nom du fichier et le nombre de fichiers à créer, il faut effectivement utiliser un fgets:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    // lecture du nom de fichier
    fgets(nom, sizeof nom, stdin);
    Mais il faut penser à faire le ménage...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    // lecture du nom de fichier
    fgets(nom, sizeof nom, stdin);
    clean(nom, stdin);
    avec, par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    void clean(char *s, FILE *fp)
    {
       /* search ... */
       char *p = strchr (s,'\n');
       if (p != NULL)
       {
          /* ... and kill */
          *p = 0;
       }
       else
       {
         /* purge */
          int c;
          while ((c = fgetc(fp)) != '\n && c != EOF)
          {
          }
       }
    }

  6. #6
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Par défaut
    Oh là , ça se voit que je ne fais plus de C en ce moment
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

Discussions similaires

  1. Réponses: 3
    Dernier message: 16/07/2007, 19h41
  2. Compiler pour créer des fichiers ROM Z80
    Par malem09 dans le forum Pascal
    Réponses: 7
    Dernier message: 18/02/2007, 09h22
  3. Existe-t-il un programme pour créer des tutos en video
    Par crash override dans le forum Applications et environnements graphiques
    Réponses: 5
    Dernier message: 09/02/2007, 23h05
  4. Recherche un programme pour créer des installation
    Par crunch-me dans le forum Autres Logiciels
    Réponses: 3
    Dernier message: 22/04/2006, 19h25
  5. [CR] Version nécessaire pour créer des fichiers DSR ?
    Par aysse dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 17/11/2003, 09h01

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