Scanf()

Résolu
malcomx2 Messages postés 7 Date d'inscription   Statut Membre Dernière intervention   -  
malcomx2 Messages postés 7 Date d'inscription   Statut Membre Dernière intervention   -
bonjour toulemonde !
voila j'ai un projet qui demande de creer un programme qui traite les points dans un plan cartésien. Un point est caractérisé par son abscisse, son ordonnée qui sont deux valeurs de type entier et un code de type caractère donné par l'utilisateur du programme.
Les points sont gérées dans un tableau de structure....
et apres il demande de chercher un point par son code ou par son ordonnée!!
l'utilisateur doit saisir soit le code soit l'ordonnée et pas les deux!
comment le faire ?
et merci d'avance

1 réponse

Utilisateur anonyme
 
Bonjour,

2 solutions (au moins) sont possibles.

1) Lui demander de choisir ce qu'il va saisir. C'est à dire un petit menu : saisir 1 pour le code, 2 pour l'ordonnée par exemple.

2) Recupérer ce qu'il a saisie dans une chaine et regardé si celle ci commence par une lettre ou si c'est un nombre.

Voilà un petit code vite fait qui pourrait te donner une petite idée :

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>

int main(void) {
  int ordonnee;
  char code, buf[128];
  printf("Code ou ordonnée : ");
  scanf("%s", buf);
  if (isalpha(buf[0])) {
    code = buf[0];
    printf("Code saisie : %c\n", code);
  }
  else {
    ordonnee = atoi(buf);
    printf("Ordonnée saisie : %d\n", ordonnee);
  }
  return 0;
}
1
malcomx2 Messages postés 7 Date d'inscription   Statut Membre Dernière intervention  
 
la 2eme est plus professionnelle et efficace...merci
0