Ir ao conteúdo

C++ Scanf limitado para determinado numero de caracteres


Ir à solução Resolvido por devair1010,

Posts recomendados

Postado

Gostaria de saber como faço para meu programa pular para o próximo scanf quando o usuario digitar um numero de caracteres específico.

Ex:

int a,b,c;

 

scanf("%d", &a);

// Nesse o usuario deve digitar 2 numeros, e sem ter que apertar enter o programa deve pular para a proxima leitura automaticamente.

scanf("%d", &b);

// Mesmo procedimento.

scanf("%d", &c);

// Nesse ultimo só muda que o usuário deve inserir 4 digitos.

 

Minha dúvida é essa. Obrigado.

  • Obrigado 1
  • Solução
Postado

@Rafael Carvalho Alencar     uma função para fazer esse procedimento não existe naturalmente na linguagem  c / c++ ,  então você pode criar uma função que faça isso  ,   aqui um exemplo de uma bem simples  , mas que funciona bem  nesse caso  com esses números que você disse   :

#include <stdio.h>
#include <conio.h>
#include <math.h>
int meu_scanf(int n){
    int j,q=pow(10,n-1),a=0;
    for(j=n;j>0;j--){
        a+=(getche()-48)*q;
        q=q/10;
    }
    return a;
}
int main(){
    int a,b,c;
    printf("Dois numeros ");
    a = meu_scanf(2);/* quantidade de números */
    printf("\nnumeros digitados -> %d\n\n",a);

    printf("Dois numeros ");
    b = meu_scanf(2);/* quantidade de números */
    printf("\nnumeros digitados -> %d\n\n",b);

    printf("Quatro numeros ");
    c = meu_scanf(4);/* quantidade de números */
    printf("\nnumeros digitados -> %d\n\n",c);

    return 0;
}

 

Postado

Sem usar getche da conio.h o mais próximo seria algo desse tipo:

#include <stdio.h>

int main()
{
    int a, b, c;
    
    scanf(" %2d%2d%4d", &a, &b, &c);

    printf("%d %d %d\n", a, b, c);
    
    return 0;
}

 

Ou para forçar 2-2-4 caracteres assim:

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

int main()
{
    char aa[3] = {0}, bb[3] = {0}, cc[5] = {0};
    int a, b, c;
    
    scanf(" %2c%2c%4c", aa, bb, cc);
    a = atoi(aa);
    b = atoi(bb);
    c = atoi(cc);
    
    printf("%d %d %d\n", a, b, c);
    
    return 0;
}

 

  • Curtir 1

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!