Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di fab333
    Registrato dal
    Nov 2010
    Messaggi
    15

    [C] lettura da file: comportamento inspiegabile

    Salve!
    Se compilo un programma in cui faccio uso della seguente funzione

    codice:
    typedef long double Lf;
    
    void DM (FILE * after, FILE * info, int n, Lf s[2]) {
    	int c;
    	Lf J[4];
    	
    	s[0]=s[1]=0.L;
    	rewind(after);
    	for(c=0; c<M; c++) {
    		fscanf(after, "%Le\n", &J[0]);
    		s[0] += J[0] / M;
    	}
    	rewind(after);
    	for(c=0; c<M; c++) {
    		fscanf(after, "%Le\n", &J[0]);
    		s[1] += (J[0]-s[0])*(J[0]-s[0])/M;
    	}
    	s[1] = sqrtl (s[1]);
    	fprintf(info, "# %d RG\n%+26.19Le   %+26.19Le\n\n", n, s[0], s[1]);
    	return;
    }
    mi funziona tutto bene.
    Ora se però sostituisco J[4] con J[1] (notare che uso solo J[0] !!!) il programma non funziona più!!!
    Mi dà -nan come risultato dell'operazione. Lo stesso se al posto dell'array utilizzo un sola variabile tipo

    Lf J;

    Qualcuno mi sa spiegare l'origine di questo strano comportamento?
    grazie!

  2. #2

    Re: [C] lettura da file: comportamento inspiegabile

    Originariamente inviato da fab333
    mi funziona tutto bene.
    Ora se però sostituisco J[4] con J[1] (notare che uso solo J[0] !!!) il programma non funziona più!!!
    Sostituire dove ?
    J[0] lo usi ovunque

    PS: leggibilità 0 e porto 0
    lolide
    Java Programmer

    Informati

  3. #3
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472

    Moderazione

    Originariamente inviato da fab333
    Salve!
    Se compilo un programma in cui faccio uso della seguente funzione
    [...]
    Ho provveduto a formattare il codice usando il tag [CODE]; in futuro, provvedi tu, come da Regolamento del forum.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  4. #4
    Utente di HTML.it L'avatar di fab333
    Registrato dal
    Nov 2010
    Messaggi
    15

    Re: Re: [C] lettura da file: comportamento inspiegabile

    Originariamente inviato da lolide
    Sostituire dove ?
    J[0] lo usi ovunque

    PS: leggibilità 0 e porto 0
    scusa, non sono stato chiaro...
    intendevo nella dichiarazione dell'array, quindi al posto di

    codice:
    Lf J[4];
    utilizzo

    codice:
    Lf J[1];
    ad esempio...

  5. #5
    Forse a fscanf non gli basta un long double per leggere quel valore ....
    Che valore legge ?
    Che compilatore usi ? (con VC++ un long double è come un double)
    lolide
    Java Programmer

    Informati

  6. #6
    Utente di HTML.it L'avatar di fab333
    Registrato dal
    Nov 2010
    Messaggi
    15
    Ho scoperto l'errore, sono un idiota!!!
    È semplicemente che aprivo il file in modalità di sola lettura....
    Scusate la perdita di tempo... È che sono malato e non sono del tutto lucido...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.