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

  FORUM HardWare.fr
  Programmation
  C++

  Je débute en C et y'a un p'tit truc que je comprends pas.......

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Je débute en C et y'a un p'tit truc que je comprends pas.......

n°129510
tilateur
Posté le 22-04-2002 à 21:47:50  profilanswer
 

#include <stdio.h>
void main () {
  double nbre1, nbre2, resultat;
  int operateur;
  printf ("Entrez un premier nombre : " );
  scanf  ("%f", &nbre1);
  printf ("Entrez l'operateur       : " );
  operateur = getchar();
  printf ("\n" );
  printf ("Entrez un second nombre  : " );
  scanf  ("%f", &nbre2);
  switch (operateur) {
    case '+' : resultat = nbre1 + nbre2; break;
    case '-' : resultat = nbre1 - nbre2; break;
    case '*' : resultat = nbre1 * nbre2; break;
    case '/' : resultat = nbre1 / nbre2; break;
    default  : printf ("Les seuls opérateurs reconnus sont : +, -, * et /\nveuiller recommencer\n" );
    }
  printf ("%f %c %f = %f\n", nbre1, operateur, nbre2, resultat);
  }
 
un p'tit prog en C, juste pour m'entrainer, le truc passe a la compile mais a l'execution le getchar est "sauté"
 
je comprends pô pkoa!!!

mood
Publicité
Posté le 22-04-2002 à 21:47:50  profilanswer
 

n°129511
bistou
Vieux .... très très vieux!
Posté le 22-04-2002 à 21:51:05  profilanswer
 

c declaré en entier et tu fous un caractere dedans
et pour saisir un entier c scanf qui fo faire


---------------
:sol:
n°129512
tilateur
Posté le 22-04-2002 à 21:55:48  profilanswer
 

ben a quoi y sert le getchar alors?
en plus en cours on l'avait vu comme ca il me semble (le char est un ascii noté par un entier, d'ou le int).
 
mais avant de faire ca j'avais déclaré un char et j'avais fait un scanf et ca me faisait la même chose, je vais retester (sait-on jamais)......

 

[jfdsdjhfuetppo]--Message édité par tilateur le 22-04-2002 à 21:56:07--[/jfdsdjhfuetppo]

n°129514
tilateur
Posté le 22-04-2002 à 21:59:31  profilanswer
 

#include <stdio.h>
void main () {
  double nbre1, nbre2, resultat;
  char operateur;
  printf ("Entrez un premier nombre : " );
  scanf  ("%f", &nbre1);
  printf ("Entrez l'operateur       : " );
  scanf  ("%c", &operateur);
  printf ("\n" );
  printf ("Entrez un second nombre  : " );
  scanf  ("%f", &nbre2);
  switch (operateur) {
    case '+' : resultat = nbre1 + nbre2; break;
    case '-' : resultat = nbre1 - nbre2; break;
    case '*' : resultat = nbre1 * nbre2; break;
    case '/' : resultat = nbre1 / nbre2; break;
    default  : printf ("Les seuls opérateurs reconnus sont : +, -, * et /\nveuiller recommencer\n" );
    }
  printf ("%f %c %f = %f\n", nbre1, operateur, nbre2, resultat);
  }
 
 
 
ca donne ca et ca fait exactement pareil.....

n°129546
HelloWorld
Salut tout le monde!
Posté le 22-04-2002 à 23:52:59  profilanswer
 

Ah lala, scanf ...
Moi je le deteste ... voila entre autre pourquoi.
Ton getchar n'est pas sauté, il se cogne juste le retour chariot que le precedent scanf n'a pas daigné enlever du buffer d'entree stdin.
Fait un printf("%d", operateur);
et tu verras que operateur ne vaut pas 0 (il vaut '\n';);
 
Apres ton premier scanf, rajoute ceci : fflush(stdin);
ca va vider le buffer d'entree.
scanf travail en effet sur une ligne. Ton programme aurait marché sans probleme si tu avait tout regroupé :
scanf("%f %c %f", &nbre1, &operateur, &nbre2);
(avec la par contre obligatoirement char operateur;)
mais comme tu saisis ligne par ligne, ben y'a le retour chariot qui guette les debutants ... ;)
 
Donc soit tu rajoute fflush(stdin); apres chaque scanf, soit tu regroupes en un seul. (Un seul c'est mieux pour épater la galerie :
"Entrez l'opération a effectuer : "
2 + 2
"Resultat : 2 + 2 = 4." )


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Je débute en C et y'a un p'tit truc que je comprends pas.......

 

Sujets relatifs
[PHP] Script facile , mais je debute , Aidez-moi !Un pti coup de main en java (please je débute)
[UNIX] Script csh, comprends pas...[C] Y'a un truc qui foire dans 1 soft (problème résolu)
Je debute dans la programmation par quel language dois-je commer ?[ PHP ] J'arrive pas a faire un truc...
[JAVA] truc bizarre pour debutant en applet...[HTML / balise object / évènement ONBLUR] bug, ou truc très con
[Chuis une merde en C] Comment on fait ce truc de newb inside[VC++6] comprends pas tout ...
Plus de sujets relatifs à : Je débute en C et y'a un p'tit truc que je comprends pas.......


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR