Comment puis-je forcer l'utilisateur de saisir un entier positif?
Vigueur à l'utilisateur d'entrer un entier positif et de mettre l'utilisateur dans une boucle jusqu'à ce qu'ils font.
Donc, je veux tout, y compris des caractères non autorisés un peu plus > 0
J'ai essayé le suivant:
while (i < 0) do {
printf("please input a number that's positive");
scanf("%d", i);
}
while (i < 0) do { printf("veuillez saisir un nombre positif"); scanf("%d", i); }
Un
Comment puis-je désactiver tout char être saisi?
Vous pouvez écrire un programme qui utilise la webcam pour analyser les mouvements de l'utilisateur, et si l'utilisateur semble à l'intention de taper un nombre négatif, vous tirer une fléchette paralysante à lui. Vous aurez besoin de le paralyser dart matériel, bien que. Vous devez également prendre soin de ne paralyser les utilisateurs qui sont tout simplement planant sa main sur la
Juste pour info, il n'y a pas
Un
while
boucle de travaux pour qui. Le placer après l'acceptation de l'entrée de l'utilisateur avec autant de conditions que vous devez regroupés avec les && et ||.Comment puis-je désactiver tout char être saisi?
Vous pouvez écrire un programme qui utilise la webcam pour analyser les mouvements de l'utilisateur, et si l'utilisateur semble à l'intention de taper un nombre négatif, vous tirer une fléchette paralysante à lui. Vous aurez besoin de le paralyser dart matériel, bien que. Vous devez également prendre soin de ne paralyser les utilisateurs qui sont tout simplement planant sa main sur la
-
bouton, mais n'a pas l'intention de la presse.Juste pour info, il n'y a pas
while (condition) do { }
en C. Il est do {} while(condition);
et while(condition) {}
, mais pas tout faire.OriginalL'auteur Taz B. | 2012-07-27
Vous devez vous connecter pour publier un commentaire.
Pour l'entier positif utilisez le code suivant
Le langage c fournit pas de vérification d'erreur de saisie de l'utilisateur. L'utilisateur doit entrer le type de données correct. Par exemple, si un utilisateur a entré un caractère lorsqu'une valeur entière qui était attendu, le programme peut entrer dans une boucle infinie ou d'interrompre de façon anormale.
scanf()
, pour s'assurer qu'il peut effectivement interpréter ce qui a été tapé comme un nombre décimal. Si elle renvoie0
, alors vous devez effacerstdin
de l'caractères qui ne peuvent pas être lu comme nombre.0 passerait cette condition du while, et 0 n'est pas positif.
OriginalL'auteur Siddiqui
Ces deux tandis que les fonctions de gérer les nombres, l'int k est l'ensemble entier qui ne peut être inférieur à 20, la première boucle while fait une déclaration qui appelle à un autre scan si le nombre est supérieur à 20
et la deuxième boucle imprime un k*k-fort.
Espérons que cette aide.
OriginalL'auteur Dave
Je voudrais faire: déclarer
char term
etint wrong = 0
.Le code ci-dessus détecte l'entrée non valide si l'utilisateur a entré un mélange de caractères et de chiffres, ou des nombres négatifs (et zéro).
Cependant, il n'est pas détecter si l'utilisateur a entré les zéros à droite à l'avant, suivi par valable chiffres par exemple.
001
ou00000738
. Si personne d'autre ne pouvait comprendre cela, s'il vous plaît partagez ci-dessous. Merci! 🙂fflush(stdin)
provoque un comportement indéterminé. J'espère que vous signifiaitfflush(stdout)
de sorte que l'utilisateur voit l'invite.OriginalL'auteur Roy Lin
Ici est une autre alternative d'une fonction qui prend en
char str[20]
(de dire, peut-être 20 éléments), des analyses de la chaîne de vérifier que pour des entiers positifs, et renvoie un0
ou1
en conséquence. Enfin, convertir une chaîne en nombre entier à l'aide deatoi()
.Donc la fonction n'accepte que des nombres positifs de 1 à 9,999,999,999,999,999,999 (19 chiffres si
char str[]
détient 20 éléments).Toutefois, si vous avez converti la chaîne de retour à
int n = atoi(str);
, la valeur maximale qu'il peut atteindre serait de 2 147 483 647 depuisn
est déclaré comme un entier signé. Jouer avec différents types de données pour l'exploration.Espérons que cette aide! 🙂
Oui, je sais que Matt McNabb, je me demandais si certaines personnes aimeraient savoir comment la fonction a été écrit.
OriginalL'auteur Roy Lin