Jump to content

Condição do-while enquanto for diferente de inteiro


ZI-Power
 Share

Recommended Posts

Boas pessoal!

Eis a minha questão, gostava de saber como faço para que a minha condição do - while pare enquanto for inteiro e continue enquanto for diferente de inteiro!

do
{
 printf("Insira um numero: ");
 scanf("%d", &num);
} while (num != (int));
Edited by pwseo
syntax highlight.
Link to comment
Share on other sites

Se fores à documentação relevante (na secção «Return value»), encontras o seguinte:

These functions return the number of input items successfully matched and assigned, which can be fewer than provided for, or even zero in the event of an early matching failure.

Isto significa que a função deverá devolver o número 1 no teu caso (e zero caso o utilizador não introduza o que é pedido). Tens apenas que incluir essa verificação no teu ciclo.

Repara neste exemplo:

~ $ ./exemplo
Introduza um número: a
Isso não era um número.
~ $ ./exemplo
Introduza um número: 42
Boa!, introduziste o número 42
~ $

E aqui fica o código do exemplo:

#include <stdio.h>

int main(void) {
   int n = 0, ret;

   printf("Introduza um número: ");
   ret = scanf("%d", &n);
   if (ret == 1)
       printf("Boa!, introduziste o número %d\n", n);
   else
       printf("Isso não era um número.\n");

   return 0;
}
  • Vote 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.