CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Besoin d'un petit coup de main en C...

cralon
cralon
Niveau 9
22 novembre 2006 à 20:09:33

Salut !

J´ai commencé aujourd´hui à apprendre le C (youhou !) j´en suis donc à un niveau très élevé ! lol

Je rencontre un petit problème dans la création d´une calculatrice en lignes de commandes. Voici le code :

int valeur1, valeur2;
float res;
char operateur;

printf("Premier chiffre ?\ n");
scanf("%i", &valeur1);
printf("Deuxieme chiffre ?\ n");
scanf("%i", &valeur2);
printf("Operateur (+ - / *) ?\ n");
scanf("%c", &operateur);

(la suite n´étant pas utile je ne l´ai pas affichée...)

Lors de l´exécution, le programme demande le 1er et le 2ème chiffre puis affiche la question "Operateur ?" et se termine sans permettre de réponse !

Quelqu´un peut m´éclairer ?

Merci d´avance :)

Cralon

deepblue
deepblue
Niveau 16
22 novembre 2006 à 21:08:27

tu as mis un system("pause") (connais pas la syntaxe exacte) ?

cralon
cralon
Niveau 9
22 novembre 2006 à 21:14:24

Oui, oui bien sûr ! Je n´ai pas copié la fin du programme. L´erreur donne l´impression que mon "%c" n´est pas correct... Pourtant j´ai bien défini "operateur" comme étant une variable de type "char", donc je ne comprend pas...

DantePC
DantePC
Niveau 10
22 novembre 2006 à 21:59:35

Salut. Ceci doit venir du fait qu´il y ai un ´\n´ dans le buffer stdin. Il faut donc nettoyer avant d´utiliser scanf

  1. include <stdio.h>
  2. include <stdlib.h>

static void purge(void)
{
int c = 0;
while ((c = getchar()) != ´\n´ && c != EOF)
{
}
}

int main(void)
{
int valeur1 = 0, valeur2 = 0;
float res .0;
char operateur 0;

printf("Premier chiffre ?\ n");
purge();
scanf("%i", &valeur1);
printf("Deuxieme chiffre ?\ n");
purge();
scanf("%i", &valeur2);
printf("Operateur (+ - / *) ?\ n");
purge();
scanf("%c", &operateur);
/* Reste de ton code */
return EXIT_SUCCESS;
}

godrik
godrik
Niveau 30
22 novembre 2006 à 22:00:23

mon man dit:

c Matches a sequence of characters whose length is specified by
the maximum field width (default 1); the next pointer must be a
pointer to char, and there must be enough room for all the char‐
acters (no terminating null character is added). The usual skip
of leading white space is suppressed. To skip white space
first, use an explicit space in the format.

Je supose qu´il considere le retour a la ligne comme un caractere. Essaye de le noter explicitement dans ton scanf:
scanf ("\n%c", &operateur);

guyver2
guyver2
Niveau 10
23 novembre 2006 à 07:15:53

un petit printf("caractere lu : >>%c<<\n",operateur);
et tu sera fixé. Si les fleches ne sont pas sur la meme ligne alors c´est que scanf a lu le ´\n´...

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment