April 6, 200619 yr slt tout le monde. alors j'ai une question a posé:et merci d'avance pour vos reponse j'ai un programme qui doit m'affiché des erreur en cas si je le donne un nombre pas equivalent de ce qu'il doit avoir printf("entrer le nbre de sommets:\n"); scanf("%d",&ns); if(ns>100) printf("depassement de capacité\n"); c une partie du programme ou je doit pas avoir un nombre superieur a 100 et en cas de l'avoir je doit ecrire depassement de capacité et sortir directement du programme .alors comment faire?merci
April 6, 200619 yr Si j'ai bien compris, si t'as un nombre > 100 tu sors du programme. Donc: printf("entrer le nbre de sommets:\n"); scanf("%d",&ns); if(ns>100){printf("depassement de capacité\n"); return 0;} Si la valeur de retour de ton main est un int.
April 6, 200619 yr Si j'ai bien compris, si t'as un nombre > 100 tu sors du programme. Donc: printf("entrer le nbre de sommets:\n"); scanf("%d",&ns); if(ns>100){printf("depassement de capacité\n"); return 0;} Si la valeur de retour de ton main est un int. dans ce cas la il m'affiche mem pas le depassement e capacité.alors commnt faire.
April 6, 200619 yr dans ce cas la il m'affiche mem pas le depassement e capacité.alors commnt faire. Merci de te relire ?Qu'est ce que tu entends par dépassement de capacité ? Ton int peut aller bien au dela de 100. Il me semble qu'il y a une notion que tu n'as pas bien assimilé.
April 12, 200619 yr Je pense qu'il a une sorte de valeur à ne pas dépasser par exemple sur un système industriel ceci peut se produire imagine dans une chaîne de montage de pack de bière si quelqu'un fait un programme en demandant combien de bière doivent être rentré dans le pack si la personne rentre 10 ben ca passe pas dans le pack et le robot l'est bête alors il casse la bière et faut surtout pas gâcher la bière alors il faut sortir du programme. Pour ton problème apres le printf fait un getchar() ( pour que tu vois le message d'erreur ) et ensuite soit le return 0 de shark_atlantis ou alors un break;
April 15, 200619 yr dans ce cas la il m'affiche mem pas le depassement e capacité.alors commnt faire. Il doit l'afficher mais tu n'as pas le temps de le voir que la fenêtre se ferme. Tu n'aurais pas ce problème si tu lances ton application depuis une console (ou fenêtre ms-dos selon ton OS). Bref : puts("entrer le nbre de sommets:"); scanf("%d",&ns); while(getchar() !='\n'); // vide le buffer d'entree mais pas trop necessaire dans le cas d'un int if(ns>100) { puts("depassement de capacité"); getchar(); return 0; }
April 15, 200619 yr De quel getchar() parles-tu? Celui de la fin permet d'attendre avant de fermer la fenêtre. Pour l'autre, il permet de vider le tampon d'entrée. Imagine qu'il rentre une lettre à la place d'un int, il peut faire planter le programme. De toute façon, il faut éviter au maximum scanf(). Et quand on l'utilise, faut toujours vider le buffer, toujours :)
April 17, 200619 yr Et donc, tu le fais même quand l'entier rentré est correct? if ( scanf("%d", &nb) != 1 ) { /* flush the buffer here */ while (getchar() != '\n'); } scanf est à déconseiller pour lire une chaîne, pour le reste c'est ok.
April 17, 200619 yr On ne perd rien à le faire. Moi je n'utilise jamais scanf(), même pas pour un entier, quand je fais un vrai projet qui doit tenir la route. Je privilégie fgets() et strtol()
Archived
This topic is now archived and is closed to further replies.