我正在使用scanf
从文件中获取变量的值。它应该继续从文件中读取,直到遇到%
。如何比较%
scanf("%d",&a);
if (a=='$') terminate ; ??
它不起作用什么可能是解决方案?
最佳答案
你不能%d
不会转换%
或$
。换句话说,它将不会放入任何内容(更不用说您应该传递&a
了)。转换失败时,它将保留在stdin
上,因此您以后仍可以阅读。
要知道转换是否成功,请检查scanf()
的返回值。它返回成功的cnversions数。
if (1 != scanf("%d", &a)) {
char c = 0;
scanf(" %c", &c);
if (c == '%' || c == '$') {
/* done */
}
}
关于c++ - 如何使用%d格式说明符处理字符?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14994861/