我正在使用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/

10-17 01:36