Итак, я создал массив, который сохраняется в файле.У меня есть номер 4, распечатанный 100 раз в файле.Теперь каждый раз, когда к элементу в массиве обращаются, его значение уменьшается на 1. Таким образом, если к A [1] = 4 обращаются, то он становится A [1] = 3 и сохраняется в файле.Дело в том, что я не могу сохранить измененный массив в файл.
Я уже пытался переместить размещение указателя FILE.
void buildingB4()
{
system("CLS");
FILE *input, *output;
int i, B4[100], room;
input = fopen("B4.txt", "r");
if (input == NULL)
{
output = fopen("B4.txt", "w");
for (i = 1; i <= 100; i++)
{
B4[i] = 4;
fprintf(output, "%d\n", B4[i]);
}
fclose(output);
for (i = 1; i <= 100; i++)
{
if (i % 10 == 0)
{
printf("\n\n");
}
printf("B-4-%d(%d)\t", i, B4[i]);
}
}
else
{
for (i = 1; i <= 100; i++)
{
fscanf(input, "%d\n", &B4[i]);
if (i % 10 == 0)
{
printf("\n\n");
}
printf("B-4-%d(%d)\t", i, B4[i]);
}
fclose(input);
printf("\nPlease choose a room:B-4-");
scanf("%d", &room);
B4[room] = B4[room] - 1;
output = fopen("B4.txt", "a");
fprintf(output, "%d\n", B4[i]);
studentDetails();
}
}
, скажем, если A [1] = 4 и когдапользовательский ввод 1, 1 сохраняется в переменной с именем room.поэтому A [комната] = A [комната] -1, поэтому результатом будет A [1] = 3, и это изменит A [1], сохраненный в файле.