Мне нужно прочитать конфигурацию в файле, чтобы сделать проект из колледжа.В моей функции чтения я использую структуру для хранения конфигурации, но я не знаю, почему одна из переменных меняет свое значение при чтении следующего параметра.
struct client_config{
char name[20]; //en teoria son 6 + '\0'
char MAC[12];
char server[20];
int UDPport;
};
void read_software_config_file(struct client_config *config){
FILE *conf;
conf = fopen(software_config_file, "r");
if(conf == NULL){
fprintf(stderr, "Error obrir arxiu");
exit(-1);
}
char word[1024];
int i=0;
fscanf(conf, "%s", word);
fscanf(conf, "%s", word); /* No es la millor manera de fer-ho... pero ja que suposem que el fitxer es correcte*/ strcpy(config->name, word); /* Ens saltem les comprovacions */
fscanf(conf, "%s", word);
fscanf(conf, "%s", word);
strcpy(config->MAC, word);
printf("%s this is config->mac after first read \n", config->MAC);
fscanf(conf, "%s", word);
fscanf(conf, "%s", word);
strcpy(config->server, word);
printf("%s this is config->mac after next read \n", config->MAC);
fscanf(conf, "%s", word);
fscanf(conf, "%s", word);
config->UDPport = atoi(word);
fclose(conf);
}
OUTPUT:
89F107457A36 это config-> mac после первого чтения (это правильно)
89F107457A36localhost это config-> mac после следующего чтения (это неправильно)
файл, который я читаюэто:
Nom SW-01
MAC 89F107457A36
Server localhost
Server-port 2019