[C/C++] Comportement bizarre de printf()/switch sous Linux (gcc)

Comportement bizarre de printf()/switch sous Linux (gcc) [C/C++] - Programmation

Marsh Posté le 01-07-2002 à 15:21:30    

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 ?


---------------
Visitez mon site : http://www.jujubarbare.linux-fan.com
Reply

Marsh Posté le 01-07-2002 à 15:21:30   

Reply

Marsh Posté le 01-07-2002 à 16:29:13    

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

Reply

Marsh Posté le 01-07-2002 à 17:36:09    

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. }

Reply

Marsh Posté le 01-07-2002 à 17:59:08    

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


---------------
iteme.free.fr | Mon feedback
Reply

Marsh Posté le 01-07-2002 à 18:02:58    

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

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed