Почему функция scanf_s не принимает данные правильно?
Когда я ввожу a
, выход not a
, Условие верно, так почему выход not a
?. Когда я использую getchar
вместо scanf_s
работает нормально. В чем проблема?
char op;
scanf_s("%c", &op);
if ( op == 'a' )
printf("the character is a");
else
printf("not a");
3 ответа
Тендерный %c
(еще два таких исключения %s
, %[
) требуется третий аргумент
scanf_s("%c", &op, 1); // 1 to read single character
Третий аргумент должен быть sizeof
тип. scanf_s
гарантированно будет доступен, только если __STDC_LIB_EXT1__
определяется реализацией, и если пользователь определяет __STDC_WANT_LIB_EXT1__
к целочисленной константе 1
перед включением <stdio.h>
,
#define __STDC_WANT_LIB_EXT1__ 1
#include <stdio.h>
int main()
{
char op;
scanf_s("%c", &op, sizeof(op));
if ( op == 'a' )
printf("the character is a");
else
printf("not a");
return 0;
}