Pular para o conteúdo

ler char unsando scanf

Responder tópico
  • Denunciar
  • Indicar

1. ler char unsando scanf

Enviado em 24/10/2016 - 17:01h

pessoal sou novo na programação.
estou tentando que o scanf leia um + em um codigo.
ja tentei tudo que li aq mas nao foi.
alguem me da uma luz ai.
embaixo ta o codigo.

int num1, num2;
char operacao;

printf("digite valor =\n");
scanf("%d", &num1);
printf("digite valor =\n");
scanf("%d", &num2);
//printf("resultado = %d", soma(num1,num2));
printf("escolha a operacao =\n");
printf("1 = soma\n");
printf("2 = subtracao\n");
scanf(" %s", &operacao);

if(operacao == '+')
{
printf("resultado = %d", soma(num1,num2));
}

Responder tópico

2. Re: ler char unsando scanf

Enviado em 24/10/2016 - 17:11h

Você não definiu a função soma.

----------------------------------------------------------------------------------------------------------------
Nem direita, nem esquerda. Quando se trata de corrupção o Brasil é ambidestro.
(anônimo)

Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden

3. Re: ler char unsando scanf

Enviado em 24/10/2016 - 18:12h

meio confuso seu código, mas... vou tentar responder em cima dele.

printf("escolha a operacao =\n"); //// Beleza, a pessoa vai escolher a operação
printf("1 = soma\n");
printf("2 = subtracao\n");
scanf(" %s", &operacao) ///// A pessoa escolheu o 1 ou o 2, certo? E aonde você atribuiu que o 1=+(soma)e o 2=- (subtração)? O sistema não adivinha que 1 é soma e 2 é subtração.

ou você muda isso ou então atribui o valor de 1 para calcular soma e 2 para subtração

por exemplo:

if (operacao==1){
soma=num1+num2;
}else if (operacao==2){
subtracao=num1-num2;
}

Entendestes?

4. Re: ler char unsando scanf

Enviado em 24/10/2016 - 19:06h

Também achei meio confuso. Mas voltando a sua principal pergunta...
Para ler um char, o ideal seria usar o getchar(), mas já que quer usar um scanf, basta usar o idenficador "%c" no scanf.

5. esplicando

Enviado em 24/10/2016 - 23:44h

pessoal o meu codigo ta confuso pq tava fazendo varios testes pra poder funcionar.
vou deixar o codigo limpo.

int num1, num2;
char operacao;

printf("digite valor =\n");
scanf("%d", &num1);
printf("digite valor =\n");
scanf("%d", &num2);
printf("escolha a operacao =\n");
printf("+ = soma\n");
printf("- = subtracao\n");
scanf(" %s", &operacao);

if(operacao == '+')
{
printf("resultado = %d", soma(num1,num2));
}

eu quero que o scanf leia esse '+', para poder usar o if, mas não ta indo. ja tentei o getchar(), e quase tudo que vi aq.rsrs
por isso apelei por usar 1 e 2 pra escolher a operação.kkk

6. esplicando

Enviado em 24/10/2016 - 23:50h

em relação a função soma eu fiz sim. so não coloquei pq o foco é ler o char no scanf, isso que ta pegando.kkk

7. Re: ler char unsando scanf

Enviado em 24/10/2016 - 23:54h

Seria uma boa deixar dentro de [ code ] e [ /code ].

É mais fácil usar opção 1, 2, 3, 4 que usar sinais de operação.

Até pode usar, mas o teclado pode ter que usar shift para fazer sinal de +.

Para avaliar operação 'vezes' deve ser avaliado tanto 'x' quanto 'X', maiúsculo e minúsculo.

Também pode ser incluído '*' que também pode precisar de shift.

----------------------------------------------------------------------------------------------------------------
Nem direita, nem esquerda. Quando se trata de corrupção o Brasil é ambidestro.
(anônimo)

Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden

8. Re: ler char unsando scanf

Enviado em 25/10/2016 - 00:13h

Será que leu a postagem que fiz? Sua lógica está errada.

9. Re: ler char unsando scanf

Enviado em 25/10/2016 - 13:56h

Você NUNCA deve usar a conversão "%s" para ler dado para uma variável do tipo char. "%s" não é para ler um caráter único, mas sim uma string de caracteres, que devem ser guardados num vetor de caracteres.

A conversão para ler apenas um caráter é "%c". E você deve lembrar com cuidado que, ao contrário de outras conversões, "%c" não provoca o descarte de espaços em branco: se você quiser pular espaços antes do caráter não-branco do seu interesse, você tem de fazer isso explicitamente por meio de espaço em branco presente na string de formatação.

Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder