sul mio manuale c'è scritto che le due funzioni ritornano il numero di elementi scritti/letti e in caso di errore è necesario usare feof && ferror.
come posso usarle per capire il tipo id errore? sul manuale non c'è scritto niente
sul mio manuale c'è scritto che le due funzioni ritornano il numero di elementi scritti/letti e in caso di errore è necesario usare feof && ferror.
come posso usarle per capire il tipo id errore? sul manuale non c'è scritto niente
Il tipo di errore? In che senso?
No MP tecnici (non rispondo nemmeno!), usa il forum.
in pratica sto creando un file con delle anagrafiche che vado a memorizzare e poi creo un indice, che ordino alfabeticamente, ma non è questo il problema
l'indice viene ordinato volta per volta, facendo parecchi strcmp fino a che non trovo la posizione ideale per l'inserimento.
il punto è che se sono al primo inserimento in assoluto nell'indice , mi da errore.
infatti io faccio una fread della prima chiave dell'indice , solo che la prima volta che uso il programma la fread non va a buon fine, perchè l'indice è vuoto e il programma crasha.
quindi mi serve qlc per capire se la fread ha letto o no l'elemento richiesto.
pensavo di usare ferror ma non so come si utilizza e non ho trovato materiale.
scusate se mi spiego a rate
if(fread(...)==0) allora c'e' stato un errore ...
No MP tecnici (non rispondo nemmeno!), usa il forum.
avevo anch'io fatto così , ma mi crashava ancora e penvaso allora di aver sbagliato.
allora ho sbagliato a individuare l'errore.
grazie
Sì .... ma il problema potrebbe essere nel buffer che passi alla fread ... forse e' troppo piccolo ... bisognerebbe (come sempre) dare un'occhiata al codice ...
No MP tecnici (non rispondo nemmeno!), usa il forum.
in questo caso stavo tentando di agigustare il codice di un mio amico, purtroppo non posso postarlo.
me la caverò sbattendoci la testa.
grazie oregon
ciao
errore trovato.
in pratica nel codice c'era scritto
(pseudocode)
inserisic anagrafica in dat.dat
apri l'indice ind ind.dat
leggi il primo elemento dell'inidce e continua finchè nnn hai trovato la posizione
il problema era che se l'indice non esisteva , lo creava ma andava cmq a ricerca della posizione.
ovviamente andando in crash
ho agigunto:
if esiste-->cerca
else->inserisci nell'indice e basta
così funziona
ciao