Witam, mam do uzupełnienia kod i moje zadanie polega na:
"Zmodyfikuj program serwera, tak aby po otrzymaniu ramki danych: „d 123 21” program dodał dwie liczby 123 i 21, a następnie odesłał wynik do klienta. Komenda „o” powinna odejmować dwie liczby."
I mój fragment kodu to tego wygląda tak:
int i = 2, result = 0;
int a, b, c;
if (server.recvbuf[0] == 'd')
{
while (server.recvbuf[i] >= '0' && server.recvbuf[i] <= '9')
{
result = server.recvbuf[i] - 48 - result * 10;//'1'-48, zeby przeksztalcic asci na liczbe, pod result poprzednia
i++;
}
a = result;
i += 1;
result = 0;
while (server.recvbuf[i] >= '0' && server.recvbuf[i] <= '9')
{
result = server.recvbuf[i] - 48 - result * 10;
i++;
}
b = result;
c = a + b;
cout << c << endl;
}
Niestety w wyniku, w drugim okienku wypisuje zły wynik, np jeśli piszę "d 21 27" to otrzymam "-32"
Ma ktoś może pomysł co mi się upsuło?