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 :

Ecriture dans un fichier


Sujet :

C

  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 76
    Par défaut Ecriture dans un fichier
    Bonjour

    Mon problème est assez basique en fait , mais le c et moi ça fait 2

    je désire écrire un fonction qui me permet d'écrire dans un fichier un nom et un prénom quelle reçoit en paramètre, évidement je dois écrire chaque fois à la fin du fichier, pour pas écraser ce qu'il y a déjà dedans ...

    Voila ce que j'ai déjà fait .... est-ce correcte ? pouvez vous me corriger ? dois-je utiliser fseek_end ? si oui comment ?

    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
    void ajouter(nom,prenom)
    {
      int mavariable;
      if ((mavariable =
           open ("candidat.txt", O_RDWR | O_CREAT, 0644)) == -1)
        {
          perror ("Ouverture" );
          exit (EXIT_FAILURE);
        }
      if (write (mavariable, "%nom %prenom") == -1)
        {
          perror ("Ecriture" );
          exit (EXIT_FAILURE);
        }
      exit (EXIT_SUCCESS);
      return 0;
    }
    NB: je travail sous UNIX et je dois utiliser des fonctions de bas niveaux le plus possible

    Merci d'avance

  2. #2
    Membre Expert Avatar de fregolo52
    Homme Profil pro
    Développeur C
    Inscrit en
    Août 2004
    Messages
    2 366
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C

    Informations forums :
    Inscription : Août 2004
    Messages : 2 366
    Par défaut
    salut

    pour écrire à la fin il faut O_APPEND.
    si open échoue ca retourne 0 pas -1.

    et pour écrire je verrais plutot :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    char str_temp[256];
    sprintf(str_temp, "%s %s", nom, prenom)
    write(mavariable, str_temp, strlen(str_temp));
    je me suis basé sur ça pour te répondre.

  3. #3
    Invité(e)
    Invité(e)
    Par défaut
    Bonjour,

    Si tu n'est pas limité par la bibliothèque, tu peux utiliser le classe FILE.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    void ajouter(const char *nom, const char *prenom)
    {
        FILE * fich = fopen("candidat.txt", "a");
        if(NULL == fich) {
            perror("candidat.txt");
        } else {
            fprintf(fich, "%s %s", nom, prenom);
            fclose(fich);
        }
    }
    EDIT :
    • Il ne faut pas oublier de fermer le fichier
    • Il faut déclarer correctement nom et prenom
    • exit permet de quitter le programme entier, pas seulement la fonction appelée
    • return 0 est incompatible avec un fonction de type void

  4. #4
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 76
    Par défaut
    Merci pour vos conseils, je suis pas limité dans les bibliothèques, mais ma prof préfère qu'on utilise des open et non des fopen...

Discussions similaires

  1. probleme d'ecriture dans un fichier texte
    Par azrael88370 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 24/01/2005, 17h33
  2. Script shell - écriture dans un fichier
    Par Leishmaniose dans le forum Linux
    Réponses: 6
    Dernier message: 13/12/2004, 22h48
  3. Probleme d'ecriture dans un fichier en mode Text
    Par bbozet dans le forum C++Builder
    Réponses: 3
    Dernier message: 14/01/2004, 13h46
  4. [LG]ecriture dans un fichier binaire
    Par jsaviola dans le forum Langage
    Réponses: 3
    Dernier message: 26/12/2003, 17h30
  5. Réponses: 2
    Dernier message: 26/09/2003, 14h51

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