我正在尝试编写一本关于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,所以我对我的语法有什么问题感到困惑。感谢。
答案 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'){