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

Bibliothèque standard C Discussion :

fscanf sous Linux


Sujet :

Bibliothèque standard C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4
    Par défaut fscanf sous Linux
    Bonjour,
    lorsque je compile sous windows, aucun problème, mais lorsque je compile sous linux, j'obtien
    attention : format %s expects type char *, but argument 3 has char (*)[80]
    sur cette ligne
    fscanf(configFile, "Out folder : %s\n", &outFolder);
    et plusieurs autres lignes similaires.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    52
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 52
    Par défaut
    Ca n'aurait pas du compiler sous Windows ou alors fscanf à un prototype différent sous Win que sous Linux.
    le '&' est de trop:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fscanf(configFile, "Out folder : %s\n", outFolder);

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4
    Par défaut
    Merci quand même, mais l'erreur ne venait pas du &, mais du fait que je n'avais pas mis -lSDLmain et -lSDL dans les "linker options".

  4. #4
    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 leo299 Voir le message
    Merci quand même, mais l'erreur ne venait pas du &, mais du fait que je n'avais pas mis -lSDLmain et -lSDL dans les "linker options".
    Les problèmes de bibliothèques (édition de lien) n'ont rien à voir avec le problème de format de printf() que tu as signalé au début de cette discussion (compilation).

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4
    Par défaut
    Citation Envoyé par Emmanuel Delahaye Voir le message
    Les problèmes de bibliothèques (édition de lien) n'ont rien à voir avec le problème de format de printf() que tu as signalé au début de cette discussion (compilation).
    Bien que le problème n'ai aucun rapport avec la bibliothèque, en l'incluant, j'ai réglé (tout du moins fait disparaître l'erreur) l'autre problème en même temps, mais j'ai tout de même enlevé le &.

  6. #6
    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 leo299 Voir le message
    Bien que le problème n'ai aucun rapport avec la bibliothèque, en l'incluant, j'ai réglé (tout du moins fait disparaître l'erreur)
    Tu n'as rien réglé. Le fait d'avoir un warning n'empêche pas la compilation. Le code est généré, mais faux.

    Le fait que tu ais réglé les problèmes d'édition de lien font que le code a été généré sans produire le moindre warning (il n'y a pas eu de recompilation). C'est tout ce qu'on peut dire.

    Tu aurais fait un 'rebuild all', tu aurais à nouveau vu le warning.

    Depuis, tu as retiré le '&' et le problème est réglé.

    Il faut bien comprendre comment se comportent les outils. Ne pas hésiter à faire des essais pour vérifier tout ça...

  7. #7
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 398
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 398
    Par défaut
    Ben si, ça compile. C'est juste un Warning gracieusement offert par gcc, mais que Visual ne donne pas (il devrait, mais aucune norme ne n'y oblige).

    Et en effet, le & est de trop. Coup de bol, tu lui as passé un tableau et non un pointeur, donc ça marchait. Avec un pointeur, tu aurais écrasé ton pointeur.

    Edit: Post croisé avec leo299...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4
    Par défaut
    Merci a vous deux, j'ai enlevé le & et la tout semble encore fonctionner.

  9. #9
    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 leo299 Voir le message
    lorsque je compile sous windows, aucun problème, mais lorsque je compile sous linux, j'obtien
    attention : format %s expects type char *, but argument 3 has char (*)[80]
    sur cette ligne
    fscanf(configFile, "Out folder : %s\n", &outFolder);
    et plusieurs autres lignes similaires.
    Ce code est erroné. Si outFolder est un tableau de char, il faut retirer ce '&' qui n'a rien à y faire.

    Sous Windows, avec gcc (MinGW), et une bonne configuration, tu aurais eu le même comportement du compilateur.

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

Discussions similaires

  1. [Série] Accès au port série sous linux
    Par ghost dans le forum Entrée/Sortie
    Réponses: 10
    Dernier message: 10/10/2007, 10h43
  2. Comment désinstaller MySQL sous linux
    Par nahmsath dans le forum Installation
    Réponses: 5
    Dernier message: 18/09/2007, 10h46
  3. installer jbuilder7 sous linux
    Par rtlinfo34 dans le forum JBuilder
    Réponses: 5
    Dernier message: 30/10/2002, 19h16
  4. Réponses: 2
    Dernier message: 25/10/2002, 22h19
  5. Je ne peux établir une connexion cliente sous Linux.
    Par Anonymous dans le forum CORBA
    Réponses: 5
    Dernier message: 16/04/2002, 15h57

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