Jak wykonywać obliczenia na ciągu znaków pobranym opcją getline

0

W miejscu, w którym mam problem dodałem komentarz.

#include <iostream>
#include <cstdio>
#include <cmath>
#include <cstdlib>
#include <windows.h>

using namespace std;

int main(int argc, char *argv[])
{
    char kod[17];
    int suma=0;
    
    cout<<"Wprowadz 16-cyfrowy kod aktywacyjny: "<<endl;
    cin.getline(kod,17); 
    
    
    cout<<kod[0]<<endl;
    cout<<kod[1]<<endl;
    
    suma= kod[0] + kod[1]; 
//jak dodamy dwie liczby to czemu wychodzi dziwny wynik. Wiem, że getline pobiera ciag znakow i nie rozróżnia czy to liczba czy litera (jak rozróżnić liczbę od litery?)żebym mógł na nich wykonywac obliczenia    

    cout<<"suma="<<suma<<endl;
     
    system("CLS");

    if(suma>15)
    {
               
               SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN);
        cout<<"Zweryfikowano pozytywie."<<endl;
    }
    
    if(suma<15)
    {          
               SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED);
        cout<<"Zweryfikowano negatywnie."<<endl;
    }
    
    system("PAUSE");
    EXIT_SUCCESS;
}
 

Probowałem jeszcze czegoś takiego, ale też nie działa.

int liczba1, liczba2,wynik;

liczba1 = kod[0];
liczba2 = kod[1];

wynik = liczba1 + liczba2;
 

Jak ktoś wie jak wykonać obliczenia na tych liczbach niech pisze.

1

Czemu nie użyć std::string zamiast char[] i std::getline() zamiast cin.getline()? ;)

Jeśli wpiszesz 12... to w kod[0] + kod[1] nie dodajesz 1 + 2 tylko '1' + '2'. `1' '' ma wartość liczbową równą 49, przynajmniej w ASCII. http://www.asciitable.com/

0

a da się to zamienić tzn. wartość znaku na tą liczbę ?

1 użytkowników online, w tym zalogowanych: 0, gości: 1