Calculadora trocar enter por =

1. Calculadora trocar enter por =

Taffarel
xikara

(usa Outra)

Enviado em 10/09/2015 - 23:01h

O programa e console não tem interface gráfica

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

int main(void)
{
float num1,
num2;
char oper;

do
{
scanf("%f", &num1);
scanf(" %c",&oper);
scanf("%f", &num2);
system("cls || clear");

printf("Calculando: %.2f %c %.2f = ", num1,oper,num2);


switch( oper )
{
case '+':
printf("%.2f\n\n", num1 + num2);
break;

case '-':
printf("%.2f\n\n", num1 - num2);
break;

case '*':
printf("%.2f\n\n", num1 * num2);
break;

case '/':
if(num2 != 0)
printf("%.2f\n\n", num1 / num2);
else
printf("Nao existe divisao por 0\n\n");
break;

case '%':
printf("%d\n\n", (int)num1 % (int)num2);
break;

default:
if(num1 != 0 && oper != '0' && num2 != 0)
printf(" Operador invalido\n\n ");
else
printf(" Fechando calculadora!\n ");
}

}while(num1 != 0 && oper != '0' && num2 != 0);

}



  


2. Re: Calculadora trocar enter por =

Thiago Henrique Hüpner
Thihup

(usa Manjaro Linux)

Enviado em 11/09/2015 - 07:37h

Qual a dúvida?

Aki funcionou muito bem.

É só colocar um printf antes dos scanf's

[]'s

T+

--

body@human: $ sudo su
brain@human: # apt-get purge -y windows* && echo "Windows removed successfully"




3. Re: Calculadora trocar enter por =

Paulo
paulo1205

(usa Ubuntu)

Enviado em 11/09/2015 - 13:46h

Se é para Arduino e com o teclado que você mostrou, então, você possivelmente não vai simplesmente poder usar scanf().

Você vai ter um circuito dedicado para tratar o teclado e enviar caracteres para você (via serial ou outra forma), ou seria o mesmo programa controlador tratando a leitura das teclas?


4. Re: Calculadora trocar enter por =

André
andrezc

(usa Debian)

Enviado em 11/09/2015 - 21:20h

E qual é a sua dúvida?


5. Re: Calculadora trocar enter por =

Taffarel
xikara

(usa Outra)

Enviado em 11/09/2015 - 22:22h


A minha duvida e que apos digitar os valore eu tenho que apertar enter
e no teclado que vou comprar não tem. Não seu como ele funciona. Eu sei que tem que instalar a biblioteca
e ver as funções
o que eu quiria saber se tem como via código c trocar o enter por outra tecla


6. Re: Calculadora trocar enter por =

André
andrezc

(usa Debian)

Enviado em 12/09/2015 - 00:31h

xikara escreveu:


A minha duvida e que apos digitar os valore eu tenho que apertar enter
e no teclado que vou comprar não tem. Não seu como ele funciona. Eu sei que tem que instalar a biblioteca
e ver as funções
o que eu quiria saber se tem como via código c trocar o enter por outra tecla




Use a função getche().


7. Re: Calculadora trocar enter por =

Paulo
paulo1205

(usa Ubuntu)

Enviado em 12/09/2015 - 06:10h

Ele vai trabalhar com Arduino, não com um PC. Não vai ter um sistema operacional.

Pelo que eu andei lendo, existe até uma parte de I/O no compilador C++ para Arduino, mas ela só implementa o front-end, e cabe ao desenvolvedor do produto fazer a cola entre esse front-end e o hardware que ele inventar.

Por isso mesmo eu perguntei, acima, de que maneira ele vai interagir com o teclado. Pelo link que ele mandou, tudo o que o produto oferece são oito conectores, ligando as quatro linhas e permitindo que ele leia quatro colunas. Quem vai fazer esse procedimento de scan de baixo nível? Ele mesmo? Algum circuito dedicado, que depois entrega já um caráter ASCII numa porta serial?


8. setbuf

Gabriel Ché Silva
GSS

(usa Debian)

Enviado em 12/09/2015 - 09:24h

Cara usa o setbuf pra deixar o buffer do teclado limpo, por enter ou espaço são um caracter.
Exemplo setbuf:

setbuf(stdin, NULL);

Valeu!


9. Re: Calculadora trocar enter por =

Gabriel Ché Silva
GSS

(usa Debian)

Enviado em 12/09/2015 - 09:25h

GSS escreveu:

Cara usa o setbuf pra deixar o buffer do teclado limpo, por enter ou espaço são um caracter.
Exemplo setbuf:

setbuf(stdin, NULL);

Valeu!


Use isso se quando estiver apertando enter no primeiro numero ele já pula pro igual




10. o comando getche(); so falta arruma a logica

Taffarel
xikara

(usa Outra)

Enviado em 13/09/2015 - 20:08h

obrigado pela ajuda
acho que estou no caminho agora e so pegar os valores do vetor transforma em numero multiplicar o valor do vetor
tipo valor vetor [1] X10
vetor [2 ]x 100
e depois somar tudo
para depois fazer a operação com o outro vetor

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

int main(void)
{


char num1[8],
num2[8];
char oper;
int a ,b;

a=0;
b=0;
do {
a++;
num1[a] = getche();
} while(( num1[a] == '+') || ( num1[a] == '-') || ( num1[a] == '/') || ( num1[a] == '*'));

do {
b++;
num2[b] = getche();
} while( num2[b] == '=');


oper = num1[a];


11. Re: Calculadora trocar enter por =

Paulo
paulo1205

(usa Ubuntu)

Enviado em 14/09/2015 - 18:41h

GSS escreveu:

GSS escreveu:

Cara usa o setbuf pra deixar o buffer do teclado limpo, por enter ou espaço são um caracter.
Exemplo setbuf:

setbuf(stdin, NULL);

Valeu!


Use isso se quando estiver apertando enter no primeiro numero ele já pula pro igual



Ele está programando num Arduino, não num PC. Se já é difícil ter uma implementação de scanf(), imagino que mais difícil ainda será uma de setbuf() que faça sentido.

De todo modo, essa sugestão é insuficiente mesmo num PC, pois se a entrada estiver ligada a um terminal, o próprio driver do terminal pode ter seus buffers, sobre o qual função setvbuf() não interfere (lembrando que setbuf() é só um caso particular de setvbuf()).

Quando chegar a casa, posto aqui um programa que fiz que abre um terminal virtual e envia pelo lado master uma quantidade ilimitada de caracteres para consumo de um processo que lê apenas um caráter no lado slave. Para um processo com o terminal em modo canônico (normal no uso interativo), o resultado na minha máquina foi que o processo leitor simplesmente nunca consome nenhum dos caracteres emitidos, e consequentemente também o emissor nunca termina (provavelmente os caracteres excedentes começam a ser descartados).






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts