Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2613 connectés 

 


Dernière réponse
Sujet : [C/C++] Comportement bizarre de printf()/switch sous Linux (gcc)
juju_le_barbare

ITM a écrit a écrit :

J'ai eu plus ou moins le même prob avec gcc 2.95.3 pour BeOS, c'est étrange
 




 
Ah ! Il s'agirait donc d'un bug de gcc ?
J'avoue ne pas savoir sous quelle version je suis, mais je vais regarder !
 
@++
 
juju


Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
juju_le_barbare

ITM a écrit a écrit :

J'ai eu plus ou moins le même prob avec gcc 2.95.3 pour BeOS, c'est étrange
 




 
Ah ! Il s'agirait donc d'un bug de gcc ?
J'avoue ne pas savoir sous quelle version je suis, mais je vais regarder !
 
@++
 
juju

ITM J'ai eu plus ou moins le même prob avec gcc 2.95.3 pour BeOS, c'est étrange
juju_le_barbare

prettysmile a écrit a écrit :

j'aitesté ici (gcc aussi) pas de problème  :heink:  




 
euh ... ben ... euh ...
 
voici le source exact :
 

Code :
  1. void main()
  2. {
  3. char *choix = new char[10];
  4. printf("Voulez vous être un client (1) ou un serveur (2) ?\nOu bien trouver des infos sur vous (3), ou sur quelqu'un (4) ?\nOu savoir si quelqu'un est connecté sur vous (5) ?\n" );
  5. gets(choix);
  6. switch (choix[0])
  7. {
  8. case 49 : printf("On y va pour le client !!!\n" );
  9.                 break;
  10. case 50 : printf("On y va pour le serveur !!!\n" );
  11.                 break;
  12. case 51 : printf("On va trouver des infos sur vous !!!\n" );
  13.                 break;
  14. case 52 : printf("On va trouver des infos sur quelqu'un !!!\n" );
  15.                 break;
  16. case 53 : printf("On va chercher si on est connecté sur vous !!!\n" );
  17.                 break;
  18. default : printf("Euh ... Tu te serais pas trompé dans le choix ? ;)\n" );
  19. }
  20. }

prettysmile j'aitesté ici (gcc aussi) pas de problème  :heink:
juju_le_barbare Bonjour,
 
J'ai remarqué un truc bizarre (avec gcc).
Imaginons dans ma fonction main, j'utilise des printf(), tout va bien dans le meilleur des mondes. Je peux mettre ou non le caractère '\n' à la fin ça fonctionne comme ça devrait
Mais si à un moment j'utilise la fonction switch(), alors tous les printf() contenus dedans ou dans la suite du code (!!!) doivent afficher une chaîne se terminant par '\n', sinon
ça ne l'affiche tout simplement ... pas du tout !
 
Par exemple :
 

Code :
  1. switch (choix[0])
  2. {
  3. case 49 : printf("Tu as choisi 1\n" );
  4.                 break;
  5. case 50 : printf("Tu as choisi 2\n" );
  6.                 break;
  7. case 51 : printf("Tu as choisi 3\n" );
  8.                 break;
  9. case 52 : printf("Tu as choisi 4" );
  10.                 break;
  11. case 53 : printf("Tu as choisi 5\n" );
  12.                 break;
  13. default : printf("Euh ... Tu te serais pas trompé dans le choix ? ;)\n" );
  14. }
  15. printf("salut" );


 
... n'affiche rien si on choisit le choix 4, et 'salut' ne s'affiche pas du tout, sauf si j'ajoute '\n'...
Par contre si je met puts("salut" ); là ça marche, donc c'est un problème avec printf et switch...
 
Euh .. bizarre ... vous avez dit bizarre ?


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)