Ir ao conteúdo

Posts recomendados

Postado

Tenho que fazer com que o número digitado seja exibido sozinho, atualmente se eu executar o programa e seguir a sequencia digitada de 1,2,3, ele vai somando á direita do numero ficando exibido como 1,12,123. Eu quero que exiba separadamente como por exemplo 1,2,3.

OBS: Ainda faltam algumas partes mas o que preciso por agora é solucionar essa soma indesejada da exibição do número.

código:

//bibliotecas
#include <stdio.h>
#include <stdlib.h>
#include <math.h>//para utilizar o pow()
#include <conio.h>//para utilizar o getch()
#include <ctype.h>//para utilizar o isdigit()
 
int main(void)
{
    char digitado[50];//armazena o que foi digitado pelo usuário
    char c;//armazena cada caractere digitado pelo usuário
    int i=0,f1,f2,mult,resistor;//variável para controlar o índice do vetor de caracteres
    int numero=0;//variável para armazenar a conversão do que foi digitado pelo usuário
    
    printf("O programa sera encerrado caso seja digitado 3 vezes o valor 0.\n");
    printf("Tabela de cores dos resistores: \n 0 - Preto\n 1 - Marrom\n 2 - Vermelho\n 3 - Laranja\n 4 - Amarelo\n 5 - Verde\n 6 - Azul\n 7 - Violeta\n 8 - Cinza\n 9 - Branco\n");

    
    printf("\nDigite a primeira Faixa para o resistor: ");
    do
    {
       c=getch();//captura o caractere digitado pelo usuário
       if (isdigit(c)!=0)//se for um número
       {
          digitado[i] = c;//armazena no vetor de caracteres
          i++;//incrementa o índice do vetor de caracteres
          printf ("%c", c);//exibe o caractere digitado
       }
       else if(c==8&&i)//se for pressionada a tecla BACKSPACE e houver caracteres já digitados
       {
          digitado[i]='\0';//o índice atual do vetor de caracteres recebe a terminação da string
          i--;//o índice do vetor de caracteres é decrementado
          printf("\b \b");//o caractere digitado é apagado da tela
       }
    }while(c!=13);//o loop vai ser executado até que a tecla pressionada seja o ENTER (código 13 na tabela ASCII)
    
    digitado[i]='\0';//o índice atual do vetor de caracteres recebe a terminação da string
    numero = atoi(digitado);//a variável numero recebe o valor do vetor de caracteres convertido para inteiro
    
    printf ("\n\nO numero digitado foi %d\n\n", numero);

    c = 0;
    digitado[i]=c;
    
        printf("\nDigite a segunda Faixa para o resistor: ");
    do
    {
       c=getch();//captura o caractere digitado pelo usuário
       if (isdigit(c)!=0)//se for um número
       {
          digitado[i] = c;//armazena no vetor de caracteres
          i++;//incrementa o índice do vetor de caracteres
          printf ("%c", c);//exibe o caractere digitado
       }
       else if(c==8&&i)//se for pressionada a tecla BACKSPACE e houver caracteres já digitados
       {
          digitado[i]='\0';//o índice atual do vetor de caracteres recebe a terminação da string
          i--;//o índice do vetor de caracteres é decrementado
          printf("\b \b");//o caractere digitado é apagado da tela
       }
    }while(c!=13);//o loop vai ser executado até que a tecla pressionada seja o ENTER (código 13 na tabela ASCII)
    
    digitado[i]='\0';//o índice atual do vetor de caracteres recebe a terminação da string
    numero = atoi(digitado);//a variável numero recebe o valor do vetor de caracteres convertido para inteiro
    
    printf ("\n\nO numero digitado foi %d\n\n", numero);
    
        printf("\nDigite a terceira Faixa para o resistor: ");
    do
    {
       c=getch();//captura o caractere digitado pelo usuário
       if (isdigit(c)!=0)//se for um número
       {
          digitado[i] = c;//armazena no vetor de caracteres
          i++;//incrementa o índice do vetor de caracteres
          printf ("%c", c);//exibe o caractere digitado
       }
       else if(c==8&&i)//se for pressionada a tecla BACKSPACE e houver caracteres já digitados
       {
          digitado[i]='\0';//o índice atual do vetor de caracteres recebe a terminação da string
          i--;//o índice do vetor de caracteres é decrementado
          printf("\b \b");//o caractere digitado é apagado da tela
       }
    }while(c!=13);//o loop vai ser executado até que a tecla pressionada seja o ENTER (código 13 na tabela ASCII)
    
    digitado[i]='\0';//o índice atual do vetor de caracteres recebe a terminação da string
    numero = atoi(digitado);//a variável numero recebe o valor do vetor de caracteres convertido para inteiro
    
    printf ("\n\nO numero digitado foi %d\n\n", numero);
    
    
    system ("pause");
    return 0;
}

 

  • Curtir 1
Postado

@Sanjey    e você quer escrever os números separados por vírgula ?  ,   você pode escrever os dígitos da string  digitado um por um , ou desmembrar os dígitos do numero do tipo int transformado pela função atoi ,  extraindo os dígitos pelo comando mod "%" 10 . que vai separa os dígitos do último para o primeiro .

Postado

@Sanjey         teste com esse exemplo:

 

#include <stdio.h>
#include <math.h>
int main()
{
    printf("Hello World\n\n");
    char digitado[50]="123";
    int numero = atoi(digitado);
    int i,a;
    for(i=0; i<3; i++)
    {
        a = numero%10;
        printf("%d , ",a);
        numero /= 10;
    }
    
    return 0; 
}


 

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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...