Я думал, что понял C, но мне трудно писать простой код для практики. Когда я запускаю этот код, int a равно 0 каждый раз. Однако int b отлично работает. Идея здесь в том, что вход в программу равен 8 + 9. Почему sscanf не распознает переменную a?Почему sscanf действует так?
#include <stdio.h>
#include <stdlib.h>
int plus(int a, int b){
return (a + b);
}
int main()
{
int a, b;
char input[100], op;
printf("...I am ZOLO...\n");
printf("...The most vercatile calculator known to man...\n");
printf("...Please enter your query:");
fgets(input, sizeof(input), stdin);
sscanf(input, "%d %s %d", &a, &op, &b);
printf("%d + %d = %d...", a, b, plus(a, b));
return 0;
}
Обратите внимание, что '% s' - это строка, которую вы пишете на' op', которая является 'char'. Используйте '% c' для сканирования символа. –
Хорошо работает для меня, во всяком случае. Что именно вы используете в качестве входных данных? – Rubens
Что такое "vercatile"? –