Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Henrique Barcelos

Porque isto não funciona?

Recommended Posts

Esse código resulta num loop infinito... ele simplesmente ignora o scanf, ja tentei fflush, dar espaço, tirar o espaço antes do %d e nada...

int inteiro() {
	int num = -1;
	while (num < 0) {
		printf("Por favor, digite um numero inteiro positivo\n");
		scanf(" %d", &num);
	}

	return num;

}

Alguem ajuda???

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu compilei o seguinte código, e não houveram problemas...

 

#include <stdlib.h>
#include <stdio.h>

int main()
{
	
	
	int num = -1;
	while (num < 0) {
		printf("Por favor, digite um numero inteiro positivo\n");
		scanf("%d", &num);
	}

	printf("%d\n", num);
   
   
   	return 0;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pois é, mas eu queria isso como uma função pois tenho uma outra função onde o argumento DEVE ser inteiro. Esse foi o jeito que eu pensei...

 

Ah... Esqueci de falar, tentei compilar isso no Linux usando o GCC... No Windows eu uso o MinGW que é o equivalente não é?

Compartilhar este post


Link para o post
Compartilhar em outros sites

#include <stdio.h>

int inteiro() {
	int num = -1;
	while (num < 0) {
		printf("Por favor, digite um numero inteiro positivo:");
		scanf(" %d", &num);
	}

	return num;

}

int main()
{
	int res = inteiro();
	printf("Res:%d", res);
	return 0;
}

Aqui compilou normal...

gcc version 4.3.2 (Debian 4.3.2-1.1)

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.