Salve a tutti!
Ho un problema che non mi riesco a spiegare, ma penso sia collegato a qualche operazione che viene eseguita sulla memoria (della quale non ho la più pallida idea )
In pratica, quando dichiaro 2 variabili char, e successivamente le "riempio" tramite scanf, la prima variabile dichiarata viene azzerata.
Esempio:
#include <stdio.h>
void main () {
char op1,op2;
printf("Primo operando: ");
scanf("%d",&op1);
printf("Secondo operando: ");
scanf("%d",&op2);
}
Come primo operando inserisco, ad esempio, 12, ed il debug mi indica che viene regolarmente salvato in memoria. Dopo, se come secondo operando inserisco 13, op1 risulta uguale a 0 e op2 uguale a 13. Per aggirare il problema sono costretto sono costretto a "riempire" le variabili char nell'ordine opposto rispetto a quello con cui sono state dichiarate (nell esempio precedente quindi, dovrei effettuare la scanf prima su op2 e poi su op1).
Come posso rsolvere questo problema? (mi scusa se è una domanda da novellini, è che anche cercando in rete non sono riuscito a trovare niente a riguardo.. )
P.S. : Utilizzo i char per una questione di comodità, dato che devo utilizzarli con operatori bitwise, e quindi mi risulta più semplice effettuare dei "test su carta" con gli 8 bit di un char rispetto ai 16 bit di uno short int, per esempio..