begin process at 2012 05 30 10:07:33
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

tout premier porgramme en C. HELP !!


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

tout premier porgramme en C. HELP !!

dimanche 31 juillet 2005 à 17:50:56 | tout premier porgramme en C. HELP !!

juancho2786

Bonjour a TOUS!
Je viens de créer mon tout premier "programme" en C. Mais je ne suis pas sur que le code soit correcte. Est ce que vous pouvez me dire si c'est bon ce que j'ai fais, ou alors si y a moyen de le simplifier ou encore si vous avez des conseils pour l'améliorer (rajouter des options...)?
Merci d'avance.

voici le code :


#include <stdio.h>
main()
{
 char lettre, choix;
 
 printf("\t\t Bienvenue au programme de convertition de caractère.\n\n");
 printf("-------MENU-------\n\n");
 printf("Entrez :\n\n");
 printf("\t a pour convertir un caractère en CODE ASCII\n");
 printf("\t h pour convertir un caractère en HEXADECIMALE\n");
 printf("\t o pour convertir un caractère en OCTALE\n\n");
 printf("Votre choix:");
 choix=getchar();
 getchar();
 printf("\nEntrez une lettre au clavier.\n");
 scanf("%c",&lettre);
 switch(choix)
 {
  case 'a':  printf("Le Code ASCII de %c : %d", lettre , lettre);
     break;
  case 'h':  printf("Le Code en HEXADECIMALE de %c : %#x", lettre , lettre);
     break;
  case 'o':  printf("Le Code en OCTALE de %c : %#o", lettre , lettre);
     break;
  default:printf("Entrée incorrecte");
 }                                       
}


dimanche 31 juillet 2005 à 18:10:24 | Re : tout premier porgramme en C. HELP !!

vecchio56

Administrateur CodeS-SourceS
Je ne vois pas d'erreur (à part l'orthographe bien évidemment). Tu peux juste rassembler tous les printf du début en un seul
dimanche 31 juillet 2005 à 18:13:48 | Re : tout premier porgramme en C. HELP !!

mondrone

Membre Club
tu pourrais faire a la place de choix=getchar();  :
do
choix=getchar();
while(choix !='a' && choix!='h' && choix!='o');

comme ca tu est sur que la personne à entré une bonne commande.

Après, le prooblème de getchar() du moins je trouve, c'est qu'il attend un retour de chariot. Tu peux remplacer par getch() qui n'attend pas le retour. Par contre getch() se trouve dans conio.h et non stdio.h Il faudra la rajouter. Ensuite, pourquoi remettre un getchar() après la demande de choix ? Un seul suffisait paske la le gars va devoir appuyer encore une fois sur entree.


  Qui ne tente rien...
  Ne risque pas d'avoir grand chose !!!

dimanche 31 juillet 2005 à 19:44:26 | Re : tout premier porgramme en C. HELP !!

XpawN



heu pour le 2eme getchar après choix=..... je crois ke c'est juste pour supprimer le \n du tampon parceke sinon, si il le supprimait pas, scanf ki vient après prend la valeur qu'il doit lire ds le tampon et comme il resterait le \n bah scanf demanderait rien à l'utilisateur et mettrait un \n ds la variable lettre.
je sais pas si c'est très clair mais je crois que c'est ça.
dimanche 31 juillet 2005 à 19:51:50 | Re : tout premier porgramme en C. HELP !!

juancho2786

Merci pour vos réponses.
J'ai essayé

do
choix=getchar();
while(choix !='a' && choix!='h' && choix!='o');

et c'est vrai que c'est mieux.
Quant au deuxieme getchar() apres choix=getchar(), c'est pour supprimer le \n qui est dans la mémoire tampon.

Merci encore pour vos conseils...


dimanche 31 juillet 2005 à 20:34:51 | Re : tout premier porgramme en C. HELP !!

mondrone

Membre Club
Justement, en mettant getch() à la place de getchar() tu n'as pas de '\n' qui traine dans le tampon, car effectivement, il me semble que getchar() attend un '\n' mais sans le retirer du tampon. getch() par contre attend seulement un caractère, sans '\n'.


  Qui ne tente rien...
  Ne risque pas d'avoir grand chose !!!

dimanche 31 juillet 2005 à 20:47:27 | Re : tout premier porgramme en C. HELP !!

vecchio56

Administrateur CodeS-SourceS
Voila comment faire perdre du temps à un débutant avec des problèmes qui n'en sont pas. Dès qu'il en saura suffisemment, il quittera la console pour un truc plus évolué, et toutes ces histoires ne lui auront servi a rien. Les E/S en console c'est merdique et faut pas perdre son temps avec ca
dimanche 31 juillet 2005 à 21:44:11 | Re : tout premier porgramme en C. HELP !!

juancho2786

oui j'ai lu qu'avec getch() y avait rien dans la memoire tampon vu qu il n'attendais pas de retour chariot. Seulement j'utilise Microsoft Visual C++ et la fonction getch n'est pas compatible avec ANSI-C et elle peut seulement être utilisée sous MS-DOS.

Y a peut etre une solution pour que je puisse l'utiliser?
dimanche 31 juillet 2005 à 22:21:53 | Re : tout premier porgramme en C. HELP !!

mondrone

Membre Club
Je voudrais tout de même savoir ce que vous avez contre le mode console d'une part et contre getch() d'autre part, car je n'utilise OpenGL et encore en console, depuis un mois, et avant ça g tjrs travaillé en console (windows ou linux) avec getch() quand je pouvais car je trouve cette fonction indispensable a qui veux faire un programme un tant soit peu élaboré.


  Qui ne tente rien...
  Ne risque pas d'avoir grand chose !!!



Cette discussion est classée dans : code, caractère, printf, choix, lettre


Répondre à ce message

Sujets en rapport avec ce message

Chaine de caractère ! [ par rems14 ] Bonjour, j'ai fais un petit programme qui ne marche pas. POuvais vous me dire ce qui ne marche pas. Je vous explique, je veux demander le prénom de qu Pb avec les printf [ par PierScher ] voici le code pour afficher un pendu :printf(" ++++++++++++++++++++++++\n");printf(" Probleme utilisation de fread [ par Trinita16 ] Bonjour, Voila le source d'un programme qui doit lire un fichier binaire. Mais je ne comprends pas l'executable systematiquement...Je pense qu'il y a Problème d'Ascii [ par Arecibo ] Je sais que je dois commencer à vous emm***er avec l'Ascii mais bon, j'ai encore un problème.Mon programme est censé agir ainsi lors d'un click sur le Char et caractère NULL [ par Arecibo ] Lorsque je déclare : char Texte[16];est ce que je déclare :- une variable de type char de 16 caractères PLUS le caractère NULLou- une vari printf de #define [ par Manson ] Bonjour,voila j'ai un #define qui se presente sous cette forme :#define FILEVER 1,2,3,4Je ne peux absoluement pas changer son format.< Optimiser ce code... [ par MoDDiB ] Voila je m'entraine aux prologin mais voila je depasse la vitesse maximale pr exécuté le code, j'ai cherché amélioré etc.. et j'en suis arrivé au code besoin d'aide : liste chainée [ par SemBy ] salutjutilse une liste chainée pour pouvoir traité une structure.declaration de ma structure :struct etu{ char nom[25]; char prenom[25]; enreg et lecture dans fichier [ par musco ] salut je desirai garder des infos dans un fichier (ATTENTION JE SUIS EN C ET NE VEUT PAS DE C++)alors en faite je fais saisir par l'utilisateur le nbr Je cherche l'erreur [ par ScorpionTiti ] J'ai effectué un programme qui me permette d'écrire dans un fichier et je l'ai compilé. En le lançant, il m'envoie un message d'erreur mais je ne sais


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,421 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales