для домашней работы нам нужно ввести простые формулы (например, 3*2
, 4+10
, 50/16
и т. Д.) И вычислить результат (и остальные), используя только сложение, вычитание и сдвиг битов.В любом случае, я мог бы использовать три последовательных чтения ввода, однако я подумал, что попробую получить формулу за один проход, используя fgets()
и sscanf()
.Вот что у меня есть:
int *v; // value (left side)
int *m; // modifier (right side)
char *o; // operant
int res = sscanf(buffer,"%d%s%d",v,o,m);
Но, естественно, это не работает, потому что o
получает всю оставшуюся часть строки, оставляя m
ни с чем (m
равно любому значениюгде и когда это объявлено)
Теперь, каков будет правильный способ сделать это?
ПРИМЕЧАНИЕ : я использую функцию обрезки для обрезки лишних пробелов.