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 :

probleme de programme


Sujet :

C

  1. #1
    Futur Membre du Club
    Inscrit en
    Janvier 2010
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 3
    Par défaut probleme de programme
    bonjour a tous,

    (Je ne sais pas trop si c'est ici qu'on peut poser ce genre de question)
    je suis debutante en c et je fais actuellement un programme qui lit dans un fichier le nom, le numero et la masse atomique de differents elements... Je les classe par ordre alphabetique puis lorsque j'affiche ma liste classée je ne retrouve pas le numero atomique de mes elements...
    Je comprend pas le probleme
    Fichiers attachés Fichiers attachés

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

    Quand je cherche à compiler ton source, des warnings apparaissent, il faut en tenir compte :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    15: warning: return type defaults to 'int'
     In function 'main':
    53: warning: control reaches end of non-void function
    Ici, le compilateur n'est pas content car main n'est pas de type int main(void) ou int main(int , char*[])
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     In function 'source_utilisateur':
    61: warning: format '%3s' expects type 'char *', but argument 2 has t
    ype 'char (*)[3]'
    61: warning: format '%3s' expects type 'char *', but argument 2 has t
    ype 'char (*)[3]'
    Il faut remplacer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    scanf("%3s",&nouv->nom);
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    scanf("%3s",nouv->nom);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     In function 'source_fichier':
    80: warning: too few arguments for format
    80: warning: too few arguments for format
    Dans , il manque une variable pour stocker le caractère lu, si on veut ignorer ce caractère, il faut utiliser '*'. cf http://xrenault.developpez.com/tutoriels/c/scanf/
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    81: warning: format '%2s' expects type 'char *', but argument 3 has t
    ype 'char (*)[3]'
    81: warning: format '%2s' expects type 'char *', but argument 3 has t
    ype 'char (*)[3]'
    Même warning que plus haut.

    Une fois ces corrections faites, le problème semble avoir disparu : je pense qu'il venait de le lecture d'un caractère sans le stocker : scanf ne sachant où stocker son entier l'a stocké ou elle pouvait : là ou il n'aurait pas fallut : sur le numéro atomique.

    Résultat obtenu :
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    1  H 1.007900
    2 He 4.002600
    3 Li 6.941000
    4 Be 9.012200
    5  B 10.811000
    6  C 12.011000
    7  N 4.007000
    8  O 15.999000
    9  F 18.997999
    10 Ne 20.180000
    11 Na 22.990000
    12 Mg 24.305000
    13 Al 26.982000
    14 Si 28.086000
    15  P 30.974001
    Apres la lecture du ficher source
    voici les elements du taleau de mendeleiev present dans la liste
     Al 13 26.982000
      B 5 10.811000
     Be 4 9.012200
      C 6 12.011000
      F 9 18.997999
      H 1 1.007900
     He 2 4.002600
     Li 3 6.941000
     Mg 12 24.305000
      N 7 4.007000
     Na 11 22.990000
     Ne 10 20.180000
      O 8 15.999000
      P 15 30.974001
     Si 14 28.086000
    Desirez vous entrer de nouveaux elements? y or n

  3. #3
    Futur Membre du Club
    Inscrit en
    Janvier 2010
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 3
    Par défaut
    bonjour,

    Merci beaucoup Mabu pour ta reponse!!
    Lorsque je complile mon programme sur dev C++ ces warning n'apparaissent pas!?

    En modifiant le
    fscanf(source,"%c");
    en
    fscanf(source,"%*c");
    le programme semble fonctionner. par contre la modif
    scanf("%3s",&nouv->nom);
    en
    scanf("%3s",nouv->nom);
    Une fenetre d'erreur souvre a l'execution

    13janv.exe a rencontré un problème et doit fermer. Nous vous prions de nous excuser pour le désagrément encouru.
    Si vous etiez en train d'efectuer un travail en cours, les informations sur lesquelles vous travaillez peuvent etre perdues.
    Veuillez signaler ce probleme a microsoft.
    ...


    Je ne sais pas si cela vient du compilateur..
    En tout cas ca fonctionne avec juste la premiere modif donc je vais garder celle ci.
    Merci beaucoup.


  4. #4
    Invité(e)
    Invité(e)
    Par défaut
    Citation Envoyé par yucca Voir le message
    Lorsque je compile mon programme sur dev C++ ces warning n'apparaissent pas!?
    Il faut bien configurer son compilateur. cf http://emmanuel-delahaye.developpez....-codage-c/#LVI
    Au passage Devc++ est obsolète, il faut lui préférer wxDevc++ ou code::block.
    Citation Envoyé par yucca Voir le message
    la modif
    scanf("%3s",&nouv->nom);
    en
    scanf("%3s",nouv->nom);
    Une fenetre d'erreur souvre a l'execution
    Hum, problème inexistant chez moi, as tu fait d'autre modif ?
    Citation Envoyé par yucca Voir le message
    Dernière modification par Deepin ; 25/07/2011 à 09h42.

  5. #5
    Futur Membre du Club
    Inscrit en
    Janvier 2010
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 3
    Par défaut
    Je sais que devc++ c'est pas terrible mais jai deja beaucoup galeré pour qu'il fonctionne.. Et je n'ai pas reussi a installer un autre compilateur, bref...

    Pour ce qui est de l'erreur je n'ai rien modifié d'autre. Ca fonctionne comme ca donc ca me va. J'essayerai a la fac avec gcc...

    Merci encore,

  6. #6
    Rédacteur

    Avatar de ok.Idriss
    Homme Profil pro
    IS Consultant
    Inscrit en
    Février 2009
    Messages
    5 220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : IS Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 5 220
    Par défaut
    Bonsoir.

    Citation Envoyé par yucca Voir le message
    Je sais que devc++ c'est pas terrible mais jai deja beaucoup galeré pour qu'il fonctionne.
    Code::Blocks est assez proche de Dev C++ au niveau du fonctionnement et en générale il utilise MinGW comme compilateur (portage de gcc sous Windows) tout comme Dev C++, où est le problème ?

    Essayes de l'installer et dits nous ce qui ne marche pas (attention à bien télécharger la version avec MinGW sur le site officiel).

    D'ailleurs, en ce qui concerne la bonne configuration du compilo sous Code::Blocks (même sous Dev C++ il me semble), tout est expliqué sur le site d'Emmanuel Delahaye (voir le lien donné par mabu) ... Ce sont les mêmes que pour gcc en mode console (sauf qu'il faut les ajouter dans setting => compiler and debugger => other options).

    Cordialement,
    Idriss

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

Discussions similaires

  1. Problème execution programme SDL
    Par youp_db dans le forum SDL
    Réponses: 2
    Dernier message: 11/02/2006, 18h06
  2. Probleme execution programme
    Par jmjmjm dans le forum Bases de données
    Réponses: 3
    Dernier message: 27/11/2005, 19h32
  3. Réponses: 2
    Dernier message: 31/05/2005, 09h50
  4. [TP]Problème de programme exécutable en mode graphique
    Par GoodVibe dans le forum Turbo Pascal
    Réponses: 2
    Dernier message: 24/09/2004, 09h47
  5. [Kylix] probleme execution programme
    Par vin's dans le forum EDI
    Réponses: 1
    Dernier message: 31/03/2004, 12h25

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