0

我正在使用scanf. 它应该继续从文件中读取,直到遇到%. 我如何比较%

scanf("%d",&a);

if (a=='$') terminate ; ?? 

它不起作用 什么是可能的解决方案?

4

3 回答 3

2

你不能。%d不会转换 a %or $。换句话说,它不会将任何内容放入 a (更不用说您应该通过&a)。当转换失败时,它将保持打开状态stdin,以便您以后仍然可以阅读。

要知道转换是否成功,请检查scanf()的返回值。它返回成功 cnversions 的数量。

if (1 != scanf("%d", &a)) {
  char c = 0;
  scanf(" %c", &c);
  if (c == '%' || c == '$') {
    /* done */
  }
}
于 2013-02-21T05:05:47.433 回答
0

尝试将其作为 a=='$' 或存储您以整数读取并检查的值

于 2013-02-21T06:32:06.200 回答
0

您的 if 条件a$

改为:
if (a =='$')

  • =赋值运算符
  • ==相等运算符

编辑
做同样的比较%
if(a=='%')

于 2013-02-21T05:02:45.550 回答