У меня есть очень странное поведение с fgets:fscanf не находит слово, которое начинается с с
FILE *config;
config = fopen("config.txt", "r");
int health, weapon, speed;
char search[50];
while (fgets(search ,sizeof(search), config) != NULL)
{
fscanf(config, "health: %d", &health);
fscanf(config, "weapon: %d", ¤t_weapon);
fscanf(config, "speed: %d", &speed);
}
fclose(config);
printf("%i", speed); //prints 0
config.txt:
health: 350
weapon: 1
speed: 20
Если изменить
fscanf(config, "speed: %d", &speed);
с
fscanf(config, "wordThatDoesntStartWithS: %d", &speed);
хорошо работает. Почему?
Я не понимаю, почему у вас есть scanfs в цикле с fgets. –
Что такое 'cerca'? Где это объявлено? –
Я исправил небольшие проблемы в вашем примере (неправильные имена переменных), и он работает для меня с «скоростью» и НЕ с «wordThatDoesntStartWithS» – Vorsprung