Я новичок в кодировании, технически я начал в этом году программировать, и мне нужно много практиковаться. Как бы то ни было, я пытался изменить переменную, которая находится в файле, но браузер или процессор не нашли его. Когда я запускаю код, он может записать переменные, передать его в файл и прочитать его, но не может изменить переменную, которая находится внутри файла. Я пытался использовать некоторое время и если, но мои знания не могли зайти так далеко, как они.
Проблема в функции удаления, она может прочитать файл или архив, но не может достичь "конца файла"потому что, видимо, его не существует. Код в основном считывает удар числа и останавливается, когда вы вводите -1 на scanf. Он читает все числа (включая -1 дважды), а затем модифицирует последнее число, превращаясь в ноль. Проблема в том, что последняя функция повторяется бесконечно
#include<stdio.h>
void Create(FILE *p){
p=fopen("c:Example", "rb");
if(!p){
p=fopen("c:Example", "wb");
printf("El texto fue creado \n");
} else {
printf("El texto ya existe \n");
}
}
void Add(FILE *p){
int a;
p=fopen("c:Example", "ab");
if(p==NULL){
printf("El texto no se encontro \n");
} else {
scanf("%d", &a);
while(a!=-1){
fwrite(&a, sizeof(int), 1, p);
scanf("%d", &a);
}
fwrite(&a, sizeof(int), 1, p);
}
fclose(p);
}
void Read(FILE *p){
int a;
p=fopen("c:Example", "rb");
if(p==NULL){
printf("El texto no existe \n");
} else {
fread(&a, sizeof(int), 1, p);
printf("%d \n", a);
while(a!=-1){
fread(&a, sizeof(int), 1, p);
printf("%d \n", a);
}
}
fclose(p);
}
void Delete(FILE *p){
int a;
p=fopen("c:Example", "wb");
if(p==NULL){
printf("El texto no existe \n");
} else {
fread(&a, sizeof(int), 1, p);
printf("(1)\n");
while(a!=-1){
fread(&a, sizeof(int), 1, p);
printf("(2)\n");
}
a=0;
printf("(3)\n");
}
fclose(p);
}
int main(){
FILE *p;
Create(p);
printf("\n");
Add(p);
printf("\n");
Read(p);
printf("\n");
Delete(p);
printf("\n");
Read(p);
printf("\n");
return 0;
}