2013-02-21 84 views
0

我正在使用scanf从文件中获取变量的值。它应该继续从文件中读取,直到遇到%。如何比较%如何处理带有%d格式说明符的字符?

scanf("%d",&a); 

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

它不工作,可以采取什么问题解决?

+1

你尝试过''==?还有'a ==%'。 – 2013-02-21 05:01:20

回答

0

你如果条件不与$

改变这种比较a
if (a =='$')

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

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

2

你不能。 %d将不会转换%$。换句话说,它不会放任何东西(更不用说你应该通过&a)。当转换失败时,它将留在stdin上,所以你仍然可以随后阅读它。

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

if (1 != scanf("%d", &a)) { 
    char c = 0; 
    scanf(" %c", &c); 
    if (c == '%' || c == '$') { 
    /* done */ 
    } 
} 
0

尝试它作为一个==“$”或储值其中U在整数阅读和检查