错误:'=='之前的预期主表达式

时间:2010-08-11 16:59:20

标签: c conditional syntax-error

我正在尝试编写一本关于C的书,但我仍然坚持以下错误:

while((c = getchar()) != EOF){
            if(c >= '0' && c <= '9'){
            ++ndigit[c-'0'];
            }
            else if (c == ' ' || c == '\n' || == c =='\t'){
                ++nwhite;
            }
                else{
                    ++nother;
                }
    }

编译器抱怨我对var'c'和空白字符的比较。 错误:在'=='标记之前预期的primary-expression

我从学校开始就没写C,所以我对我的语法有什么问题感到困惑。感谢。

6 个答案:

答案 0 :(得分:3)

else if (c == ' ' || c == '\n' || == c =='\t'){
                                  ^^
                                   |
                                   +-- This == should be deleted.

答案 1 :(得分:2)

您写道:

 else if (c == ' ' || c == '\n' || == c =='\t')

但它应该是

else if (c == ' ' || c == '\n' || c =='\t'){

请注意第二个代码段中删除的条件的最后一部分之前的==。即使你有一段时间没有写过C,看起来这只是一个简单的拼写错误而不是对这些操作符的误解。

答案 2 :(得分:0)

除去行中的== c行<:p>

否则if(c ==''|| c =='\ n'|| == c =='\ t'){

答案 3 :(得分:0)

嗯,

中的==
if (c == ' ' || c == '\n' || == c =='\t')

                             ^^ Here

没有任何意义。你为什么把它放在那里?

答案 4 :(得分:0)

这是你的问题“== c =='\ t')”摆脱c变量左边的==

答案 5 :(得分:0)

问题在于else if (c == ' ' || c == '\n' || == c =='\t'){

最后== c == '\t'将它抛弃了。 C不允许你将比较串起来,另外,==左边没有任何内容(这就是“==之前预期的主表达式”的意思,它想要比较的内容但没有什么)。

应为else if (c == ' ' || c == '\n' || c =='\t'){