Salve tutti, ho appena sostenuto l'esame di informatica all'università e provando a compilare il programma a casa e debugganado ho notato che la fscanf è come se non ci fosse, non mi copia la stringa contenuta nel file nella stringa dichiarata. Allego il pezzo del programma interessato
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct{
char prodotto[17];
int qt;
} prodotti;
int main()
{
FILE* fp1;
FILE* fp2;
prodotti magazzino,richiesta;
char v;
if((fp1=fopen("magazzino.txt","a"))==NULL){
printf("errore file");
exit(-1);
}
while(fscanf(fp1,"%s %d", magazzino.prodotto,&magazzino.qt)!=EOF) //il problema sta qui, non entra nel while, se uso feof e fscanf la metto dentro, nel file ci entra (quindi non è un problema del file) ma non va lo stesso.
{
if((fp2=fopen("richieste.txt","a"))==NULL)
{
printf("errore file");
exit(-1);
}
while(fscanf(fp2,"%s",richiesta.prodotto)!=EOF)
{
if(strcmp(magazzino.prodotto,richiesta.prodotto)==0){
magazzino.qt--;
fprintf(fp2,"%s v",richiesta.prodotto);
}
}
fclose(fp2);