Ошибка: ожидаемое первичное выражение перед '==' - PullRequest
0 голосов
/ 11 августа 2010

Я пытаюсь проработать книгу на 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' и символов пробела.ошибка: ожидаемое первичное выражение до токена '=='

Я не писал C со школы, поэтому я не понимаю, что не так с моим синтаксисом.Спасибо.

Ответы [ 6 ]

3 голосов
/ 11 августа 2010
else if (c == ' ' || c == '\n' || == c =='\t'){
                                  ^^
                                   |
                                   +-- This == should be deleted.
2 голосов
/ 11 августа 2010

Вы писали:

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

Но это должно быть

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

Обратите внимание на == перед последней удаляемой частью условия, во втором фрагменте. Даже если вы давно не писали C, похоже, что это была простая опечатка, а не неправильное понимание этих операторов.

0 голосов
/ 11 августа 2010

Проблема на линии else if (c == ' ' || c == '\n' || == c =='\t'){

Это то, что == c == '\t' в конце это отбрасывает. C не позволяет вам связывать воедино сравнения и, кроме того, слева от == ничего нет (это то, что он подразумевает под «ожидаемым первичным выражением перед ==», он хочет что-то сравнивать, но нет ничего).

должно быть else if (c == ' ' || c == '\n' || c =='\t'){

0 голосов
/ 11 августа 2010

это ваша проблема "== c == '\ t')" избавиться от == слева от переменной c

0 голосов
/ 11 августа 2010

Хорошо, что == в

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

                             ^^ Here

не имеет никакого смысла вообще.Почему ты положил это туда?

0 голосов
/ 11 августа 2010

Избавьтесь от == c в строке else if:

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

...