Cześć, postanowiłem napisać trochę ciekawszy kalkulator w konsoli tak by działał jak prawdziwy kalkulator, bez wciskania enter po podaniu liczb i znaków. natrafiłem jednak na problem, kod się kompiluje ale nie działa zgodnie z założeniem, wygląda na to że wpisane znaki nie zapisują się w programie, i nie wiem co robię źle.
Byłbym wdzięczny za jakąś wskazówkę.
#include <iostream>
#include <conio.h>
using namespace std;
int num1,num2;
char znak;
void wynik (int num1,char znak,int num2);
void numery (int a[], int b[]);
int i=0,j=0;
int n1[99], n2[99];
int main()
{
int a=0;
char x;
while (true)
{
x = getche();
if (x=='0'|| x=='1'||x=='2'||x=='3'||x=='4'||x=='5'||x=='6'||x=='7'||x=='8'||x=='9')
{
if (a==0)
{
x=n1[i];
i++;
}
else if (a==1)
{
x=n2[j];
j++;
}
}
else if (x=='+'||x=='-'||x=='*'||x=='/')
{
x=znak;
a=1;
}
else if (x=='=')
{
numery(n1,n2);
wynik(num1,znak,num2);
return 0;
}
}
return 0;
}
void wynik(int num1,char znak,int num2)
{
if (znak=='+')
{
cout<<"="<<(num1+num2)<<endl;
}
else if (znak=='-')
{
cout<<"="<<num1-num2<<endl;
}
else if (znak=='*')
{
cout<<"="<<num1*num2<<endl;
}
else if (znak=='/')
{
cout<<"="<<num1/num2<<endl;
}
else
{
cout<<endl<<"error";
}
}
void numery(int a[],int b[])
{
if (i==3)
{
int num1= (n1[0]*1000)+(n1[1]*100)+(n1[2]*10)+(n1[3]);
}
else if (i==2)
{
int num1= (n1[0]*100)+(n1[1]*10)+(n1[2]);
}
else if (i==1)
{
int num1= (n1[0]*10)+(n1[1]);
}
else if (i==0)
{
int num1= (n1[0]);
}
if (j==3)
{
int num2= (n2[0]*1000)+(n2[1]*100)+(n2[2]*10)+(n2[3]);
}
else if (j==2)
{
int num2= (n2[0]*100)+(n2[1]*10)+(n2[2]);
}
else if (j==1)
{
int num2= (n2[0]*10)+(n2[1]);
}
else if (j==0)
{
int num2= (n2[0]);
}
}