le redémarrage d'un programme en C, lorsque les “si” est utilisé
Je continue à apprendre la programmation en C, et aujourd'hui j'ai rencontré un problème.
Dans mon programme, l'utilisateur doit entrer une valeur de temps, en minutes, et mon programme va calculer secondes(très simple, en fait). Mais je veux mettre une règle, que le temps ne peut pas être négative. J'ai utilisé ce code:
if(a<=0)
{
printf("Time cannot be equal to, or smaller than zero, so the program will now terminate\n");
exit(EXIT_FAILURE);
}
mais maintenant, je ne veux pas mettre fin à mon programme, je veux retourner à l'état lorsqu'un utilisateur doit entrer une valeur.
J'ai eu un problème avec la résiliation de mon programme, mais quelques recherches m'ont aidé, cependant je n'ai pas le résultat de la recherche comment redémarrer mon programme.
Ceci est le texte de mon programme(je travaille sur Linux):
#include<stdio.h>
#include<stdlib.h>
main()
{
float a;
printf("\E[36m");
printf("This program will convert minutes to seconds");
getchar();
printf("Now enter your time in minutes(e.g. 5):");
scanf("%f", &a);
printf("As soon as you will press the Enter button you`ll get your time in seconds\n");
getchar();
getchar();
if(a<=0)
{
printf("Time cannot be equal to, or smaller than zero, so the program will now terminate\n");
printf("\E[0m");
exit(EXIT_FAILURE);
}
else
{
float b;
b=a*60;
printf("\E[36m");
printf("The result is %f seconds\n", b);
printf("Press Enter to finish\n");
getchar();
}
printf("\E[0m");
}
P. S. je ne sais pas comment correctement le nom de cette fonction, je l'appelle redémarrer, peut-être qu'il a un nom différent?
a <= 0
pour sa condition d'arrêt.Une idée: garder la lecture d'entrée
while
le programme n'a pas obtenir une entrée valide.OriginalL'auteur 454b | 2012-07-30
Vous devez vous connecter pour publier un commentaire.
À la fois les solutions qui ont été publiés travail, mais personnellement, j'aime ce apporach mieux:
Je pense que c'est plus clair, et il donne l'occasion d'avoir un message d'erreur et un message régulier indépendants les uns des autres.
MERCI!!!! Il a travaillé, et j'ai compris pourquoi(je pense que c'est la chose la plus importante :D)
Super, je suis content d'avoir pu aider, et vous avez raison, de comprendre pourquoi la chose la plus importante! Amusez-vous bien 🙂
encore une question... quelle manière je peux augmenter votre réputation? 😀 upp, je l'ai fait déjà 😀 et je l'ai compris trop 😀
Vous l'avez déjà fait en acceptant ma réponse (en cliquant sur la coche verte)! Merci 🙂
OriginalL'auteur Gordon Bailey
vous pouvez essayer si-sinon où:
*condition peut être jusqu'à quand vous voulez continuer.
j'ai mis à jour le code.Vous pouvez simplement obtenir de l'entrée de l'utilisateur dans la boucle do while avant de vérifier l'état.
s'il vous plaît, regardez mon code dans le premier post, je veux remplacer " exit(EXIT_FAILURE) avec un code qui permettra de faire le programme pour vous demander de saisir une valeur
Cela permet de rendre le programme, afin de poser pour la valeur jusqu'à ce que votre temps la condition est fausse.
OriginalL'auteur heretolearn
Vous pouvez simplement utiliser un
do ... while
boucle (y compris votre code source de programme).Ou la
goto
déclaration de trop pour émuler une boucle (déconseillé avec des débutants).mais j'ai besoin de revenir à l'état où vous devez entrer une valeur, "si", l'entrée est invalide
Donc, il semble être de droite. Vous pouvez traduire cette
do ... while
boucle avec : "Alors que l'entrée est invalide, entrez une valeur".OriginalL'auteur md5