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 :

fwrite et fread


Sujet :

C

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2002
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 21
    Points : 18
    Points
    18
    Par défaut fwrite et fread
    bonjour a tous
    est il normal que quand j'utilise la fonction fwrite pour ecrire dans un fichier si apres j'ouvre ce fichier c'est incomprehensible? je veux dire que pour les nbres par ex il met des cases noires...
    est ce que quelqu'un utilise djgpp? si vous ecrivez (fwrite) dans un fichier une structure composee de nombres,noms... et qu'apres vous allez les relire (fread) avez vous des problemes a partir du nombre 13?
    pour palier a ce probleme je dois remplacer le nbre 13 par un autre nombre avez vous une autre idee?
    avec fprintf et fscanf aucun probleme

    autre question j'aimerais savoir comment faire passer des arguments d'entree a ma fonction main
    exemple
    int main (int a,int b)
    {
    printf ("%d",a+b) ;
    }

    comment executez ce programme en lui donnant les deux nbres entiers de depart

    merci a tous
    - les bonnes idees c'est tres rare, ayez en quelques unes et faites en profiter les autres...
    - L'imagination est plus importante que le savoir...

  2. #2
    Membre régulier
    Inscrit en
    Mai 2002
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 67
    Points : 79
    Points
    79
    Par défaut
    tu as deux type de format quand tu ecrit dans un fichier ... tu a le format binaire et le format texte..
    je sais plus trop lequel il faut utiliser pour permettre ce que tu veux...

  3. #3
    Membre à l'essai
    Inscrit en
    Mai 2002
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 21
    Points : 18
    Points
    18
    Par défaut re
    j'utilise le format texte et je cree un fichier.txt
    - les bonnes idees c'est tres rare, ayez en quelques unes et faites en profiter les autres...
    - L'imagination est plus importante que le savoir...

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 92
    Points : 84
    Points
    84
    Par défaut Re: fwrite et fread
    Citation Envoyé par bohemianvirtual
    autre question j'aimerais savoir comment faire passer des arguments d'entree a ma fonction main
    exemple
    int main (int a,int b)
    {
    printf ("%d",a+b) ;
    }

    comment executez ce programme en lui donnant les deux nbres entiers de depart
    La fonction main se déclare ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    int main ( int argc, char *argv[])
      {
      /* Ton code */
      }
    argc contient le nombre de paramètres de la ligne de commande (le nom du programme appelé compris).
    Et argv est un tableau contenant la liste des paramètres de la ligne de commande.

    Donc le plus simple c'est de :
    - contrôler le nombre d'arguments (dans ton cas argc doit être égal à 3).
    - vérifier que argv[1] et argv[2] sont numériques
    - les convertir en int

    J'espère avoir été assez clair.

    Cependant pour en savoir plus lire les tutoriels et cours de formation pour apprendre la programmation C : http://c.developpez.com/cours/
    Zero
    My site : http://blog.lecacheur.com
    GWhere project : http://www.gwhere.org
    Debian Addict site : http://www.debianaddict.org

  5. #5
    Nouveau membre du Club
    Inscrit en
    Avril 2002
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 23
    Points : 35
    Points
    35
    Par défaut
    Pour écrire du binaire, il vaut mieux utiliser les fonctions du type open, read, write, close.

    Le prototype de main est :

    int main(int argc, char **argv)


    où argc contient le nombre de paramètres
    et argv est un tableau contenant les paramètres sous forme de chaîne de caractères (avec argv[0] = le nom de la commande exécutée, ton programme quoi !).

    Dans ton cas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    int main(int argc, char **argv) {
      int a, b;
     
      if(argc != 3) declencher_erreur_et_quitter();
      a = atoi(argv[1]);
      b = atoi(argv[2]);
      printf("%d", a+b); 
    }

  6. #6
    Futur Membre du Club
    Inscrit en
    Mars 2002
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    fprintf() est utilisé pour écrire en mode texte alors que fwrite peut aussi être utilisée pour écrire dans des fichiers binaires.
    La fonction fwrite s'utilise de la façon suivante:

    fwrite (a,b,c,d);

    a est un pointeur sur ce que tu veux écrire.
    b est la taille de ce que tu veux écrire, par exemple sizeof(char) si tu écris une chaîne de caractères.
    c est le nombre de blocs que tu vas écrire (nombre de caractères pour une chaîne).
    d est un pointeur sur le fichier dans lequel tu veux écrire.

    Exemple d'utilisation:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    FILE * mon_fichier;
    char * ma_chaine = "bonjour";
     
    ... // Ouvre ton fichier etc.
     
    fwrite (ma_chaine, sizeof(char), 7, mon_fichier);

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. fwrite et fread
    Par Almenor dans le forum Débuter
    Réponses: 11
    Dernier message: 27/05/2012, 23h45
  2. Réponses: 2
    Dernier message: 23/02/2009, 12h23
  3. Réponses: 14
    Dernier message: 02/11/2006, 20h17
  4. Les fonctions fread et fwrite
    Par Sara83 dans le forum MATLAB
    Réponses: 1
    Dernier message: 16/10/2006, 13h54
  5. fread fwrite
    Par breezer911 dans le forum C
    Réponses: 6
    Dernier message: 25/11/2005, 11h05

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