Что означает sizeof (char) в девятой строке кода? - C (СИ)
Формулировка задачи:
#include <stdio.h>
#include <conio.h>
int main (void) {
float value1, value2;
char operat;
printf("\n\t Printed on the keyboard expression: ");
scanf_s("%f%c%f", &value1, &operat, sizeof(char), &value2);
switch (operat) {
case '+':
printf("\n\t Result: %1.4f\n", value1 + value2);
break;
case '-':
printf("\n\t Result: %1.4f\n", value1 - value2);
break;
case '*':
printf("\n\t Result: %1.4f\n", value1 * value2);
break;
case '/':
if (value2 == 0.0)
printf("\n\t Division by zero.\n");
else
printf("\n\t Result: %1.4f\n", value1 / value2);
break;
default:
printf("\n\t Unknown arithmetic operator\n\t error or enter a number. Break!\n");
break;
} // End switch
printf("\n Press any key: ");
_getch();
return 0;
}Решение задачи: «Что означает sizeof (char) в девятой строке кода?»
textual
Листинг программы
scanf("%f%c%f", &value1, &operat, &value2)
Объяснение кода листинга программы
В данном коде выполняется попытка прочитать три значения с помощью функции scanf. Список элементов кода:
value1- переменная типа float, в которую будет сохранено первое прочитанное значение.operat- переменная типа char, в которую будет сохранено второе прочитанное значение.value2- переменная типа float, в которую будет сохранено третье прочитанное значение. Аргументы функции scanf соответствуют типам данных переменных, которые передаются в функцию. В данном случае, ожидается, что пользователь введет последовательность из трех значений: первое - тип float, второе - тип char (возможно, это оператор), третье - тип float. Важно отметить, что использование функции scanf может привести к проблемам с безопасностью ввода, так как она не проверяет переполнение буфера.