Originariamente inviato da oregon
Non hai risposto alle mie domande ... come facciamo a continuare il discorso se non so come esamini il file in output ... ?
ops, lo guardo semplicemente con notepad, il file lo salvo come .txt...
ah cmq ho usato getlasterror dopo la fwrite, ho messo l errore in una Dword e debuggando mi ha dato il numero 183...che andando a spulciare nel listone degli errori corrisponde a
ERROR_ALREADY_EXISTS
183 Cannot create a file when that file already exists.
Pero...dico io.... chi gli dice che deve creare il file?
e la cosa che mi lascia un po perplesso e il fatto che facendo precedere la fseek tutto funziona a meraviglia...cmq posto tutto il codice forse e meglio...
Codice PHP:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <windows.h>
int main()
{
typedef struct person{
char lastname[15];
char firstname[15];
char age[4];
};
char cogn[15];
int i,record,items;
FILE *fptr;
DWORD pippo;
person people={"","","0"}; //INIZIALIZZO STRUTTURA
fptr=fopen("c:\\nameage.txt","wb+");
for(i=1;i<=10;i++) //INIZIALIZZO FILE
{
items=fwrite(&people,sizeof(person),1,fptr);
}
printf("%d\n",items);
rewind(fptr);
for(i=1;i<=2;i++) //METTO DUE RECORD PER PROVA
{
printf("Inserire nome cognome ed eta");
scanf("%s %s %s",people.lastname,people.firstname,people.age);
items=fwrite(&people,sizeof(person),1,fptr);
}
printf("%d\n",items); // QUESTE STAMPA MI DICONO SE EFFETTIVAMENTE LA FWRITE FUNZIONA
rewind(fptr);
printf("Inserire il record da cercare "); //ORA PROVO UNA RICERCA
scanf("%d",&record);
fseek(fptr,(record)*sizeof(person),SEEK_SET);
fread(&people,sizeof(person),1,fptr);
if(strcmp(people.lastname,"")==0)
printf("No info");
printf("Inserire nome cognome ed eta da sostituire");
scanf("%s %s %s",people.lastname,people.firstname,people.age);
items=fwrite(&people,sizeof(person),1,fptr); // SENZA LA FSEEK DAVANTI VIENE IGNORATA
pippo=GetLastError(); // METTO IN PIPPO L EVENTUALE ERRORE
printf("%d\n",items);
rewind(fptr);
for(i=1;i<=10;i++) // STAMPO IL CONTENUTO DEL FILE
{
fread(&people,sizeof(person),1,fptr);
printf("%s %s %s\n",people.lastname,people.firstname,people.age);
}
rewind(fptr);
fflush(fptr);
fclose(fptr); // CHIUDO TUTTO
system("pause");
}