我正在使用scanf
从文件中获取变量的值。它应该继续从文件中读取,直到遇到%
。我如何比较%
scanf("%d",&a);
if (a=='$') terminate ; ??
它不起作用什么是可能的解决方案?
答案 0 :(得分:2)
你做不到。 %d
不会转换%
或$
。换句话说,它不会放任何东西(更不用说你应该传递&a
)。如果转换失败,它将保留在stdin
,因此您仍然可以随后阅读。
要知道转化是否成功,请检查scanf()
的返回值。它返回成功的cnversions数。
if (1 != scanf("%d", &a)) {
char c = 0;
scanf(" %c", &c);
if (c == '%' || c == '$') {
/* done */
}
}
答案 1 :(得分:0)
您的if条件未将a
与$
改为:
if (a =='$')
修改强>
做同样的事情来比较%
if(a=='%')
答案 2 :(得分:0)
尝试将其作为=='$'或存储值读取整数并检查