switch ステートメントでシフト演算子を実装しようとしていますが、出力の取得に問題があります。'12 << 2: 48' を返す必要がある '12 << 2' のような単純な左シフトを実行しようとすると、コードが次のようになります。
#include <stdio.h>
void shift(){
char op = 0;
int x = 0;
int y = 0;
char buffer[1024];
int iCont = -1;
char c1 = 0;
char c2 = 0;
do
{
printf("\ninput: ");
fgets(buffer, sizeof(buffer), stdin);
if (sscanf(buffer, "%d %c%c %d", &x, &c1, &c2, &y)){}
switch (op)
{
case '<<': printf("%d %c1%c %d = %d", x, c1, c2, y, x << y);
break;
case '>>': printf("%d %c1%c %d = %d", x, c1, c2, y, x >> y);
default:
break;
}
} while (iCont);
}