l_seringa Posted April 6, 2006 Share Posted April 6, 2006 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 Link to comment Share on other sites More sharing options...
shark_atlantis Posted April 6, 2006 Share Posted April 6, 2006 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. Link to comment Share on other sites More sharing options...
epsilon0 Posted April 6, 2006 Share Posted April 6, 2006 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. Link to comment Share on other sites More sharing options...
theocrite Posted April 6, 2006 Share Posted April 6, 2006 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é. Link to comment Share on other sites More sharing options...
Solidus Posted April 12, 2006 Share Posted April 12, 2006 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; Link to comment Share on other sites More sharing options...
lorinc Posted April 14, 2006 Share Posted April 14, 2006 ...faut surtout pas gâcher la bière ... Link to comment Share on other sites More sharing options...
Xfaillez Posted April 15, 2006 Share Posted April 15, 2006 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; } Link to comment Share on other sites More sharing options...
theocrite Posted April 15, 2006 Share Posted April 15, 2006 Pas besoin des getchar ici. Link to comment Share on other sites More sharing options...
Xfaillez Posted April 15, 2006 Share Posted April 15, 2006 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 :) Link to comment Share on other sites More sharing options...
Baldurien Posted April 17, 2006 Share Posted April 17, 2006 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. Link to comment Share on other sites More sharing options...
Xfaillez Posted April 17, 2006 Share Posted April 17, 2006 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() Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.