有沒有一種方法來評估一個枚舉?我有一個納入一個結構枚舉:評估一個枚舉
typedef enum {MW, TR} days;
typedef struct {
int hour, min;
} Time;
typedef struct {
char Dept[5];
int course, sect;
days meet_days;
Time start, end;
char instr[20];
} sched_record;
我對枚舉print語句是:
data[i].meet_days == MW ? "MW" : "TR"
什麼我試圖做的是讓sched_record我的typedef結構僅打印有說MW的記錄。我的「菜單」的程序如下:
fread(data, sizeof(sched_record), MAX_RECORD, filePointer);
fclose(filePointer);
printf("Enter the Department or A for any Department: ");
scanf("%s", tempDept);
printf("Enter the Course or 0 for any course: ");
scanf("%d", &tempCourse);
printf("Enter the Days; M = MW, T = TTH or D=Don't Care: ");
scanf("%s", tempDay);
printf("Enter the Time; A=Mornings, P=Afternoons or D=Don't Care: ");
scanf("%s", tempTime);
我得到了我的sched_records通過時間的一個簡單的語句打印出來:
else if ((strcmp(tempDept, "A")==0) && tempCourse == 0 && (strcmp(tempDay, "D")==0) && (strcmp(tempTime, "P")==0)) {
if (data[i].start.hour >= 12) { // <---Time comparison
printf("%s %d %d %2s %02d%02d %02d%02d %s\n", data[i].Dept, data[i].course, data[i].sect, data[i].meet_days == MW ? "MW" : "TR",
data[i].start.hour, data[i].start.min, data[i].end.hour, data[i].end.min, data[i].instr);
}
}
else if ((strcmp(tempDept, "A")==0) && tempCourse == 0 && (strcmp(tempDay, "M")==0) && (strcmp(tempTime, "D")==0)) {
printf("\n%s %d", data[i].Dept, data[i].course);
我想知道是否有像一個簡單的方法與enum做相同的時間比較。如果有人可以讓我看看?
請不要標記不提與標籤插座插孔的問題。出於同樣的原因,我必須解決至少一個以前的問題。 –
@JonathanLeffler對不起。這是套接字程序的一部分,但我看到了這個想法。 –
爲什麼你不能'如果(data [i] .meet_days == MW)''? – twain249