Я должен использовать несоответствующий аргумент в fprintf (спецификатор или, возможно, один из других), потому что мой вывод не имеет смысла.fprintf с целым числом с нулевым значением
// based on http://www.cplusplus.com/reference/cstdio/fprintf/
{
FILE * pFile;
int edam7514 = gPlace[7514].damage;
int fdam4677 = gPlace[4677].damage;
pFile = fopen("Z:\\Games\\Game_1.8.11.26dev\\SAVE\\debugLog.txt", "a");
fprintf(pFile, "edam7514, %.d, fdam4677, %.d\n", edam7514, fdam4677);
fclose(pFile);
return 0;
}
"gPlace" - это массив структур. В игре несколько тысяч активных. Элементы 7514 и 4677 представляют боевые полки (Столетняя война), и оба имеют поле «повреждения», которое может находиться в диапазоне от 0 до 100.
Этот код используется при испытании артиллерийской бомбардировки английским полком (7514), но а не против французов (4677).
значения во время выполнения fprintf являются: INT edam7514 = 99 INT fdam4677 = 0 (я проверил это, глядя на фактические значения в структурах данных во время отладки)
Тем не менее, Вот что находится в файле, который производится:
edam7514, 99, fdam4677,
я ожидал:
edam7514, 99, fdam4677, 0
Думаю, я не отформатировал свои аргументы в вызове функции fprintf правильно?
Почему '% .d'? Ссылка, которую я проверила, предполагает, что за периодом должно следовать число. – usr2564301
Что вы думаете о '% .d'? –
Ключевой вопрос заключается в том, что ваш компилятор _should_ предупредил вас об этом. Убедитесь, что ваш компилятор полностью отключен. Экономит время. – chux