Зачем здесь нужен sizeof(char) - C (СИ)
Формулировка задачи:
Всем доброго времени суток
Программа расчета простого арифметического выражения на основе оператора switch.
Зачем здесь нужен sizeof(char)? Не понимаю. Без него программа не работает.
#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
Листинг программы
#ifdef __DEBUG__ scanf_s("%f%c%f", &value1, &operat, sizeof(char), &value2); #else scanf("%f%c%f", &value1, &operat, &value2); #endif
Объяснение кода листинга программы
В данном коде выполняется ввод трех чисел с плавающей точкой из стандартного ввода. В зависимости от того, определен ли макрос __DEBUG__
, ввод осуществляется с использованием функции scanf_s
, которая проверяет корректность ввода и может пропустить некорректный ввод, или без использования этой функции, с использованием функции scanf
, которая не выполняет проверку корректности ввода.
При использовании scanf_s
ввод осуществляется следующим образом:
- Вводится значение
value1
(должно быть действительным числом с плавающей точкой). - Вводится оператор
operat
(может быть любым символом, включая пробел). - Вводится значение
value2
(должно быть действительным числом с плавающей точкой). При использованииscanf
ввод осуществляется аналогичным образом, но без проверки корректности ввода. В конце ввода программа выполняет действия в зависимости от введенных значений и оператора. Код, который выполняет эти действия, не представлен в данном вопросе.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д