Je suis nouveau dans ce domaine, veuillez me pardonner si ma question comporte des problèmes.
Je voudrais lire un nombre entier, un tableau de caractères (disons de taille 30) et un nombre à virgule flottante en C. Comment puis-je lire tout cela en une seule ligne en C, disons 200 Merck 58.9 ? J'ai essayé d'utiliser scanf consécutivement dans ce qui suit, mais le deuxième scanf ne fonctionne pas - l'espace entre les entrées (par exemple 200 Merck 58.9) cause des problèmes.
printf("Please enter an integer, one word string, and a float in one line");
scanf("%i", &any_integer);
scanf("%29s", &any_string); // no spaces - just a one word string
scanf("%f", &any_float);
Je voudrais ensuite tester ce que l'utilisateur saisit, m'assurer que l'entier et le flottant sont positifs et ne dépassent pas 50, et dans la chaîne de caractères, ignorer tout ce qui n'est pas un caractère. Voici un début pour le nombre entier.
/* Test the input */
while(any_integer < 0 || any_integer > 50)
{
printf("\n*** Invalid integer.\n Please enter a value between 1 and 50:
");
scanf("%i", &any_integer);
}/* end while */
while(any_float < 0)
{
printf("\n*** Invalid float.\n Please enter a positive value: ");
scanf("%f", &any_float);
}/* end while */
Je voudrais placer cette configuration dans une boucle infinie qui se termine par 999, mais j'ai du mal à comprendre les détails présentés ci-dessus.