Wczytywanie dwóch zmiennych int i char jednocześnie

0

Mam problem z pewną częścią mojego kodu, chciałabym żeby użytkownik mógł wprowadzić pole pionka, którym chce się poruszyć, ale tak aby to było za jednym razem tzn np a5 lub 5a. Potem litery muszę zamienić (z pomocą ASCII) na cyfry, a cyfry zostawić bez zmian i wykorzystać te dane do odnalezienia odpowiedniej wartości tablicy.
POMOCY :)

0

Jeżeli miałbyś tablicę znaków

char input[] = {'a', '5', '\0'};

To mógłbyś zrobić

int column = input[0] - 'a';

I wtedy gdy wpiszesz a to dostaniesz column jako 0, b to 1, c to 2 i tak dalej.

O to Ci chodzi?

0
int coulmCharToNumber(char ch)
{
    ch = std::tolower(ch);
    if (std::islower(ch)) {
         return ch - 'a';
    }
    throw invalid_argument("column name out of range");
}
…
char charColumn;
int row;

istringstream data("a5");

if (data >> row) {
     if (data >> charColumn) {
         SelectField(coulmCharToNumber(charColumn), row);
     } else {
         throw invalid_argument("invalid move data");
     }
} else {
     data.clear();
     if (data >> charColumn >> row)  {
         SelectField(coulmCharToNumber(charColumn), row);
     } else {
         throw invalid_argument("invalid move data");
     }
}

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