当我输入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");
答案 0 :(得分:2)
尝试使用scanf()
代替scanf_s()
。
答案 1 :(得分:2)
说明符%c
(另外两个例外%s
,%[
)需要第三个参数大小 -
scanf_s("%c", &op, 1); // 1 to read single character
答案 2 :(得分:0)
第三个参数应为sizeof
类型。如果实现定义了scanf_s
,并且用户在包含__STDC_LIB_EXT1__
之前将__STDC_WANT_LIB_EXT1__
定义为整数常量1
,则只保证<stdio.h>
可用。{ / p>
#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;
}