我正在使用scanf
. 它应该继续从文件中读取,直到遇到%
. 我如何比较%
scanf("%d",&a);
if (a=='$') terminate ; ??
它不起作用 什么是可能的解决方案?
你不能。%d
不会转换 a %
or $
。换句话说,它不会将任何内容放入 a (更不用说您应该通过&a
)。当转换失败时,它将保持打开状态stdin
,以便您以后仍然可以阅读。
要知道转换是否成功,请检查scanf()
的返回值。它返回成功 cnversions 的数量。
if (1 != scanf("%d", &a)) {
char c = 0;
scanf(" %c", &c);
if (c == '%' || c == '$') {
/* done */
}
}
尝试将其作为 a=='$' 或存储您以整数读取并检查的值
您的 if 条件a
与$
改为:
if (a =='$')
编辑
做同样的比较%
if(a=='%')