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

Eclipse C & C++ Discussion :

J'ai un problème avec Wascana, il exécute "scanf" avant "printf"


Sujet :

Eclipse C & C++

  1. #1
    Futur Membre du Club
    Inscrit en
    Février 2008
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 12
    Points : 8
    Points
    8
    Par défaut J'ai un problème avec Wascana, il exécute "scanf" avant "printf"
    SOS: j'ai un problème avec Wascana, il exécute "scanf" avant "printf"
    lorsque lorsque le "printf" est placé avant "scanf".

    Par exemple pour l'exemple suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    #include <stdio.h>
     
    int main(void) 
    {
    	int i, j;
    	printf("\nEntrer deux nombres i et j");
    	scanf("%2d", &i);
    	scanf("%d", &j);
     
    	return 0;
    }
    Rien ne s'affiche dans la console, c'est après avoir entré deux valeurs (12 et 15)
    qu'il exécute le "printf" comme ceci:


    12 15

    Entrer deux nombres i et j

  2. #2
    Membre éclairé
    Avatar de mamelouk
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    867
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2005
    Messages : 867
    Points : 810
    Points
    810
    Par défaut
    salut

    en général la console (que ce soit dans eclipse ou dans le terminal) n'affiche un buffer de chaines de charactères seulement si tu lui demande (avec un fflush), si elle a atteint une taille limite ou si elle rencontre un retour chariot ("\n").

    donc, rajoute un retour à la ligne à la fin de ton message, ca ira mieux

    Débugger du code est deux fois plus dur que d'en écrire.
    Donc, si vous écrivez votre code aussi intelligemment que vous le pouvez, vous n'etes, par définition, pas assez intelligent pour le débugger.

  3. #3
    Futur Membre du Club
    Inscrit en
    Février 2008
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 12
    Points : 8
    Points
    8
    Par défaut SOS: j'ai un problème avec Wascana, il exécute "scanf" avant "printf"
    Mamelouk, ce que tu dis marche avec les autres consoles mais pas avec la console de Wascana.

  4. #4
    Membre éclairé
    Avatar de mamelouk
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    867
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2005
    Messages : 867
    Points : 810
    Points
    810
    Par défaut
    Citation Envoyé par Tiétio Voir le message
    Mamelouk, ce que tu dis marche avec les autres consoles mais pas avec la console de Wascana.
    Même si tu fais un fflush ?

    Débugger du code est deux fois plus dur que d'en écrire.
    Donc, si vous écrivez votre code aussi intelligemment que vous le pouvez, vous n'etes, par définition, pas assez intelligent pour le débugger.

  5. #5
    Futur Membre du Club
    Inscrit en
    Février 2008
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 12
    Points : 8
    Points
    8
    Par défaut mamelouk
    Même si je fais un fflush, ça ne marche pas.
    Le même problème que j'ai avec Wascana, je l'ai également avec CDT for Windows.

  6. #6
    Membre éclairé
    Avatar de mamelouk
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    867
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2005
    Messages : 867
    Points : 810
    Points
    810
    Par défaut
    Je peux voir le code avec le fflush, pour le tester ?

    Débugger du code est deux fois plus dur que d'en écrire.
    Donc, si vous écrivez votre code aussi intelligemment que vous le pouvez, vous n'etes, par définition, pas assez intelligent pour le débugger.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 79
    Points : 44
    Points
    44
    Par défaut
    Ca fonctionne très bien, écris ça :
    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>
     
    int main(void) 
    {
     
        int i, j;
        printf("Entrer 2 nombres i et j\n");
        fflush(stdout);
        scanf("%d", &i);
        scanf("%d", &j);
        printf("Les 2 nombres sont : %d et %d", i, j);
     
        return 0;
    }
    résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Entrer 2 nombres i et j
    45
    98
    Les 2 nombres sont : 45 et 98

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 35
    Points : 48
    Points
    48
    Par défaut
    Bonjour,

    J'ai le même problème que Tiéto, et je dois avouer que de nombreux post sur différents forums d'entraide parlent de ça..
    Mais fflush(stdout) ne fonctionne pas pour résoudre le problème de printf et scanf sous Eclipse/Windows.

    Y a-t-il une autre solution ? c'est vraiment pénible..

    En revanche sous Eclipse/Linux ça marche nickel !!

    Merci.

    PS : voici mon code de test, mais ça reste le même principe que tous les autres..

    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
     
    #include <stdlib.h>
    #include <stdio.h>
     
    int main(int argc, char * argv[]){
     
        char c;
     
        printf("Hello World !!!\n"); ici le \n devrait suffire mais visiblement ni le \n ni fflush ne réussissent à régler le problème.
        //fflush(stdout);
        scanf("%c",&c);
        printf("le char etait : %c",c);
     
        exit(0);
    }

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 10
    Points : 12
    Points
    12
    Par défaut
    Hmm. La réponse finale n'est pas très claire - il faudrait nettoyer le thread.

    J'ai eu le même problème et la solution de mamelouk et ninours23 (utilisation de "fflush") m'a sorti de l'impasse.
    Pour info, j'ai pas installé Wascana, mais Cygwin et Eclipse CDT Version: 3.4.1
    Build id: M20080911-1700.


    Aussi j'ai remarqué que le printf fonctionne correctement, même sans l'artifice fflush, si on lance le fichier .exe à l'invite de commandes windows - la vraie console - et non à travers Ctrl + F11.
    ... contrairement à ce que dit mamelouk
    Citation Envoyé par mamelouk
    en général la console (que ce soit dans eclipse ou dans le terminal) n'affiche un buffer de chaines de charactères seulement si tu lui demande (avec un fflush), si elle a atteint une taille limite ou si elle rencontre un retour chariot ("\n").
    Question: existe-t-il une "run configuration" qui permette de contourner la fausse console Eclipse et de lancer directement dans le terminal depuis eclipse ?

  10. #10
    Membre éclairé
    Avatar de mamelouk
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    867
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2005
    Messages : 867
    Points : 810
    Points
    810
    Par défaut
    Citation Envoyé par Hardwarista Voir le message
    ... contrairement à ce que dit mamelouk
    relire plusieurs fois ce qui est dis avant de le contredire..

    Débugger du code est deux fois plus dur que d'en écrire.
    Donc, si vous écrivez votre code aussi intelligemment que vous le pouvez, vous n'etes, par définition, pas assez intelligent pour le débugger.

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

Discussions similaires

  1. problème avec le .jar exécutable et les fichier .jrxml
    Par asma2009 dans le forum Entrée/Sortie
    Réponses: 0
    Dernier message: 23/07/2009, 11h05
  2. Problème avec un .jar exécutable
    Par neophytus dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 17/12/2008, 08h57
  3. Réponses: 2
    Dernier message: 26/09/2008, 12h23
  4. Problème avec erreur d'exécution
    Par bruce207 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 20/08/2008, 11h32
  5. Problème avec mon premier exécutable en java
    Par Icefire dans le forum Débuter avec Java
    Réponses: 9
    Dernier message: 25/04/2008, 09h42

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