Salve a tutti.

Il mio intento era di creare un programma che prendesse in input:
1)due numeri;
2)l'operatore;
ed eseguisse l'operazione corrispondente.

Utilizzando la scanf per memorizzare l'operatore ho avuto dei problemi; utilizzando la getchar idem. In entrambi i casi infatti, il programma non attendeva l'inserimento da tastiera dell'operatore ma terminava l'esecuzione come se io avessi inserito un carattere non valido.
Perché? [So che non conviene utilizzare la scanf per prendere valori in input..ma vorrei comunque capirne il funzionamento].

codice:
#include<stdio.h> 
int main(){ 
printf("type 2 numbers\n"); 
int a,b; 
char car=' '; 
scanf("%d %d ", &a, &b); 
printf("Insert the operator\n"); 
while((car=='\n')|(car=='\t')|(car=='\n')|(car=' ')) 
car=getchar(); 
switch(car){ 
case '+': printf("a+b= %d",a+b); break; 
case '-': printf("a-b= %d",a-b); break; 
case '*': printf("a*b=%d",a*b); break; 
case '/': printf("a:b=%d",a/b); break; 
default : printf("the requested operation is not valid"); 
return -1; } 
return 0; }
Grazie per l'aiuto!