我遇到了上面提到的编译错误。代码行是这样的:
if ((strcmp(tempDept, data[1].Dept)==0) && tempCourse == data[i].course){
if (tempDay = data[i].meet_days &&
tempTime == data[i].start.hour){ //<---This line
printf("this worked");
}
}
这是我的结构声明:
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;
这是我的变量列表:
int switchInput;
int i = 0;
int tempCourse = 0;
char tempDept[5];
char tempDay[2];
int tempTime;
//char tempTime[1];
FILE *filePointer;
sched_record data[MAX_RECORD];
有人可以告诉我如何解决这个问题吗?
答案 0 :(得分:1)
if (tempDay = data[i].meet_days
您缺少双等号==
答案 1 :(得分:1)
tempDay = data[i].meet_days
这会产生问题,因为tempDay
是长度为2的char数组,而meet_days
是枚举days
。在枚举中的C常量只有int
类型。您无法将int
分配给char array
本身的另一个问题。也许你想要一个等号==
?
现在,您必须考虑如何将int
枚举值转换为char[2]
。一种方法是使用sprintf()
来实现这一目标。但具体的实现取决于你对枚举常量的解释。