Ir ao conteúdo

Duvida com repetição


Julianosg

Posts recomendados

Postado

olá! sou novo em C gostaria de saber se tem alguma maneira de fazer isso:

 

" do{   

      printf("Digite um numero);

      scanf("%d", &n);

       }while(n =! int);  "

 

onde, se eu digitar qualquer carácter/valor que não seja inteiro ele repita até ser inteiro, já pesquisei e não achei nada que me esclarecesse. Se puderem ajudar, obrigado!

Postado

faz sua propria funcao pra verificar se uma string contem somente numeros ou nao

bool IsNumber(char* Texto,int Tamanho ) {  int iChar;  for (iChar = 0; iChar < Tamanho; iChar++) {      // encontrei no google que a funcao isalpha retorna verdadeiro       // se o caractere é alfabetico      if (isalpha(Texto[iChar]) == TRUE) {         return FALSE;  }  return TRUE;}

nao testei o codigo mas testa aih

Postado

hum..sei bulhufas sobre a biblioteca de C,mas se voce ta pegando a entrada com um int e é digitado um ponto flutuante, dependendo do tipo de arredondamento que o compilador faz(no VS ele trunca),isso era pra deixar a stream com o valor depois do ponto ainda,sabendo disso em teoria era só testar se a stream ainda ta cheia..

Postado

eu fiz uns testes aqui(isso realmente me encucou o.o),vi que com fgets da pra fazer uma gambiarrazinha(se tiver algum jeito mais fácil avisem por favor),por exemplo se for digitado um numero de ponto flutuante ele trunca e ficaria na stream ainda o ponto e o valor depois do ponto,então voce pode fazer alguma coisa desse tipo

char cp[2];   int n = 0;printf("Digite um numero");scanf("%d",&n);fgets(cp,2,stdin);         //le o resto que ficou na stream de stdin depois do inteiro e poe em cp      if(cp[0] == '.' )          //testa se foi colocado um ponto em cp,se foi então r será 1{  //se entrar aqui então é porque o numero é um pf e retorna o loop}

pra quando for digitado um caractere em vez de um numero pode ver esse exemplo aqui

http://forum.clubedohardware.com.br/forums/topic/1068322-problemas-com-a-valida%C3%A7%C3%A3o-da-vari%C3%A1vel-em-c/

 

deve ter jeito mais fácil pra fazer isso,mas esse é o que eu sei agora

Arquivado

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

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!