C Перечислительная программа Месяцы года не составляется - PullRequest
1 голос
/ 05 апреля 2019

Я получил приведенный ниже пример кода из моего учебника, и он все еще не компилируется.

В строке printf выдается сообщение об ошибке Unary '++': 'months; does not define this operator or a conversion to a type acceptable to the predefined operator.

Я не знаю, что делать, потому что я впервые пытался перечислить, и это буквально пример кода из книги. Что с ним не так?

// Fig. 10.18: fig10_18.c
// Using an enumeration

#include <stdio.h>

// enumeration constants represent months of the year            
enum months {                                                    
    JAN = 1, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC
}; 

int main(void) { 
    // initialize array of pointers
    const char *monthName[] = { "", "January", "February", "March", 
      "April", "May", "June", "July", "August", "September", "October",
      "November", "December" 
    };

    // loop through months
    for (enum months month = JAN; month <= DEC; ++month) {
        printf("%2d%11s\n", month, monthName[month]);
    } 
}

1 Ответ

0 голосов
/ 05 апреля 2019

То, что вы делаете, правильно в C, но неверно в C ++.

Вы должны использовать компилятор C вместо компилятора C ++.

Вы можете попробовать использовать командную строку -x cвозможность указать компилятору C ++ скомпилировать исходный файл в виде кода C.

...