Этот код на C работает правильно, когда я использую code::blocks или любые онлайн-компиляторы, однако, если я попытаюсь использовать его в VSCODE, он вернет "ожидаемый спецификатор типа перед ';' жетон на LN 5, перевал 18 дюймов «ожидаемый спецификатор типа перед токеном ')' в LN 13, столбец 26» «ожидаемый спецификатор типа перед токеном ')' на LN 20, COL 21»
это код, который я имел в виду +
#include <stdio.h>
#include <ctype.h>
int main() {
char operator;
double num1;
double num2;
double result;
char choice;
do {
printf("Enter the operator you want to use: ");
scanf("%c", &operator);
printf("Number 1: ");
scanf("%lf", &num1);
printf("Number 2: ");
scanf("%lf", &num2);
switch (operator)
{
case '+':
result = num1 + num2;
printf("The Sum is: %.1lf\n", result);
break;
case '-':
result = num1 - num2;
printf("The Difference is: %.1lf\n", result);
break;
case '/':
result = num1 / num2;
printf("The Quotient is: %.3lf\n", result);
break;
case '*':
result = num1 * num2;
printf("The Product is: %.1lf\n", result);
break;
default:
printf("That is not a valid operator! \n");
break;
}
printf("Do you want to compute again?: Y/N ");
scanf(" %c", &choice);
choice = toupper(choice);
while ((getchar()) != '\n');
}while (choice == 'Y');
return 0;
}
Я попробовал изменить операторы символов; но безрезультатно. эта проблема проявляется только на VSC
И это пока не проблема, но вам нужно проверить возвращаемое значение из scanf()
, чтобы убедиться, что оно действительно считывает данные. Если пользователь вводит QWERTY
, scanf("%lf", &num2);
не будет читать никаких данных и оставит эту строку во входном буфере.
Это именно та ошибка, которую вы получаете при компиляции кода в виде программы на C++.
Это недопустимая программа на C++, поскольку operator
(как в char operator;
) является ключевым словом в C++, и вы не можете объявлять переменную с именем operator
в C++. Вам необходимо сохранить вашу программу как программу C и скомпилировать ее как таковую.
Я только предполагаю, поскольку вы не предоставляете нам подробностей о том, как вы собираете программу (или имя исходного файла).... Вы собираете программу как программу на C++, а это означает, что
operator
— это ключевое слово, которое вы не можете использовать для имен переменных.