Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    11

    lettura file su lcc win32

    Salve,
    utilizzo da poco il compilatore C per windows lcc-win32. Con un codice ho creato un file di dati.dat costituito da 5 colonne di numeri in base decimale(500 Kbyte). Devo utilizzarlo in un secondo codice per eseguire alcune operazioni aritmetiche sui dati stessi .

    Dalla compilazione tuttavia ottengo che


    "cannot open datix2"

    sotto vi è la parte del codice che dovrebbe aprire il file........Ogni suggerimento per la risoluzione del problema è bene accetto

    grazie


    #include <stdio.h>
    #include <math.h>


    int main() {

    FILE *apri, *chiudiauto,*chiudicross;
    double......;
    int ......;


    if((apri=fopen("datix2.dat","r"))== NULL)
    {
    printf("errore nell'apertura del file");
    exit(EXIT_FAILURE);


    }


    j=1;


    apri =fopen("datix2.dat","r");
    chiudiauto=fopen("chiudiauto.dat","w");
    chiudicross=fopen("chiudicross.dat","w");
    while(fscanf(apri,"%lf %lf" .....ecc...)......;
    }
    Grazie

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481

    Re: lettura file su lcc win32

    Originariamente inviato da braccio
    Dalla compilazione

    Dalla compilazione?

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    11
    si ,eseguendo compile

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    11
    precisamente:
    cannot open ...file...
    compilationo +link time:0.1 sec,return code 1

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Ma cosa c'entra un errore di compilazione sul file dei dati?

    Non capisco cosa hai fatto ...

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    11
    Ciao,
    Scusa, mi sono spiegato male, il codice non viene compilato perchè non riesce ad aprire il file datix2,

    l'errore in sè non è nel file dati,ma quando dovrebbe aprirlo in lettura .
    Potrebbe essere dovuto al numero di cifre dopo la virgola (che sono 15) che ogni valore possiede

    provo ad eliminare le cifre non significative e ritento

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    11
    niente da fare.... o è un errore di sintassi o wedit non riesce ad aprire il file.

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Scusa, ma cosa c'entra che il programma non viene compilato perche' non si puo' aprire il file dati? Non ha senso ...

    Tu compili soltanto i file sorgenti (con estensione .c, .cpp, .h) e non il file dati!

  9. #9
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    11
    si ,hai ragione..il problema è infatti solo l'apertura del file dati;
    riformulo il mio problema:
    creato un nuovo progetto come si può far leggere un file dati.dat non appartenente a questo progetto usando lcc win32?



    Grazie per l'infinita pazienza

  10. #10
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,327
    Secondo me tu non hai ancora ben chiara la differenza fra la compilazione e l'esecuzione.
    Per poter creare un programma si passa attraverso 2 fasi: la compilazione del programma e la sua esecuzione.

    La prima è indipendente dai dati su cui il programma andrà a lavorare (siano esse variabili lette da tastiera, file aperti in lettura/scrittura, altre risorse, ecc). Se il programma è sintatticamente (e semanticamente) corretto, la compilazione genererà un eseguibile.

    Se, poi, il programma è anche corretto semanticamente e strutturalmente, l'eseguibile produrrà i dati risultanti.


    Quello che oregon sta cercando di farti capire è che l'errore che ti viene mostrato non può (per un milione di ragioni, almeno) essere prodotto in fase di compilazione, ma solo in fase di esecuzione: il compilatore non sa nulla del tuo file di dati (non sa se esiste, se è leggibile, com'è strutturato e dove è posizionato), dunque lui produce un eseguibile che è in grado di aprire un file di dati qualunque. Quando, poi, tu eseguirai il programma, allora ci potranno essere diversi motivi per cui esso genererà quell'errore.

    Molto probabilmente, l'ambiente di sviluppo che usi effettua le due cose in sequenza ed in automatico: compila ed esegue istantaneamente. Ciò non toglie che le due fasi siano ben distinte e del tutto scorrelate tra di loro.

    Dunque, cercando di fare chiarezza, l'apertura di un file di dati è indipendente dal progetto che stai compilando. Se vuoi aprire l'eseguibile della calcolatrice di Windows, non è necessario averne il sorgente per incorporarlo nel proprio progetto... basta dirgli dov'è il file e come aprirlo. Lo stesso discorso vale per il tuo file di dati: se gli dici correttamente dove si trova, come aprirlo e come leggerlo, non ci saranno errori.
    Se, invece, si presenta l'errore che hai postato, significa che il file "datix2.dat" non si trova, al momento della sua apertura, nella stessa directory del file eseguibile (ma tu, scrivendo il programma, presupponi che si trovi nulla stessa directory).


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

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.