J’ai l’erreur de compilation mentionnée ci-dessus. La ligne de code est la suivante:
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"); } }
Voici mes déclarations de struct:
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;
Et voici ma liste de variables:
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];
Quelqu’un peut-il me dire comment résoudre ce problème?
tempDay = data[i].meet_days
Cela crée un problème, car tempDay
est un tableau de caractères de longueur 2 et meet_days
est enum days
. Et dans C, les constantes dans enums ne sont que de type int
. Un autre problème que vous ne pouvez pas affecter int
au char array
lui-même. Peut-être que vous vouliez un signe égal ==
? Vous devez maintenant penser à la conversion de la valeur int
enum en char[2]
. Une méthode consiste à utiliser sprintf()
pour y parvenir. Mais la mise en œuvre concrète dépend de votre interprétation des constantes d’énumération.
if (tempDay = data[i].meet_days
Il vous manque le signe double égal ==