J'ai un petit problème avec la syntaxe C. Je veux construire un tableau struct. Mais il retourneC Déclaration de structure
spécificateurs de déclaration prévu ou « ... » avant « » villes
Voici mon code
#include <stdio.h>
#include <string.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
struct City {
int plateNumber;
char name[32];
double area;
int population;
int populationDensity;
int cityCenterPopulation;
char region[32];
double latitude;
double longitude;
};
struct City cities[81];
#define Struct_Size sizeof(struct City)
void printCityData(cities[], int i);
void readFile();
void readFile(){
int fd = open("data.dat", O_RDONLY);
if(fd<0) {
printf("Error while opening file!");
return;
}
int i;
for (i = 0; i < 81; i++) {
while(read(fd,&cities[i], Struct_Size)>0) {
printCityData(cities[i],i);
}
}
}
void printCityData(cities[], int i) {
printf("CITIES\n");
printf("plateNumber: %d\n", cities[i].plateNumber);
printf("name: %s\n", cities[i].name);
printf("area: %lf\n", cities[i].area);
printf("population: %d\n", cities[i].population);
printf("populationDensity: %d\n", cities[i].populationDensity);
printf("cityCenterPopulation: %d\n", cities[i].cityCenterPopulation);
printf("region: %s\n", cities[i].region);
printf("latitude: %lf\n", cities[i].latitude);
printf("longitude: %lf\n", cities[i].longitude);
}
int main(int argc, char const *argv[]) {
readFile();
return 0;
}
Comment puis-je résoudre ce problème?
'printCityData vides (villes [], int i) {' -> 'vide printCityData (int i) {' ' – BLUEPIXY
#define Struct_Size sizeof (struct City)' est au moins une macro mal nommée, car elle ne fait même pas référence à 'struct'. Dit que, mieux supprimer cette macro complètement. Ne soyez pas trop chic avec les macros, surtout en tant que débutant. (et que l'on peut être remplacé par une fonction inline de toute façon) – Olaf