我正在使用 scanf
从文件中获取变量的值。它应该继续从文件中读取,直到遇到 %
。我如何比较 %
scanf("%d",&a);
if (a=='$') terminate ; ??
它不起作用可能的解决方案是什么??
最佳答案
你不能。 %d
不会转换 %
或 $
。换句话说,它不会将任何内容放入 a(更不用说您应该传递 &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/