ler char unsando scanf

1. ler char unsando scanf

bruno cama silva dos santos
brunokwe

(usa Outra)

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));
}


  


2. Re: ler char unsando scanf

Perfil removido
removido

(usa Nenhuma)

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

Paulo Jr
Pebis

(usa Debian)

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

Hugo Fernandes
Hgfs

(usa Arch Linux)

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

bruno cama silva dos santos
brunokwe

(usa Outra)

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

bruno cama silva dos santos
brunokwe

(usa Outra)

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

Perfil removido
removido

(usa Nenhuma)

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

Paulo Jr
Pebis

(usa Debian)

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

Paulo
paulo1205

(usa Ubuntu)

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.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts