[C] creazione di un file di testo!!

angeliam
Ciao a tutti!
ho scritto un programmino che mi scriva 5 numeri in un file di testo,
e funziona correttamente!
questo è il codice:
int main()
{
   file *stream = fopen("bars_height.txt","w");
   if ((stream = fopen("bars_height.txt","w")) != NULL)
   {
       fprintf(stream, "22.3 \n");
       fprintf(stream, "40 \n");
       fprintf(stream, "10 \n");
       fprintf(stream, "16.5 \n");
       fprintf(stream, "21.2 \n");

       fflush(stream);
       fclose(stream);
   }
} 


L'unico problema è che vorrei far creare questo file non nella stessa directory dell'eseguibile, ma creare delle sottodirectory (Upload\istogrammi) di quella in cui c'è l'exe.
Che path devo mettere quando creo lo stream?

Aspetto vostre preziose risposte!!

Ciao ciao
Angelo

Risposte
apatriarca
Perché apri il file due volte (una volta prima dell'if e la seconda nella condizione dello stesso)? Ti ho scritto qualche commento sul codice visto che immagino tu sia all'inizio.
/* immagino che tu abbia inserito questo header ma non l'abbia copiato. */
#include <stdio.h>

int main()
{
    /* La struttura per accedere ai file è scritta tutta maiuscola nello standard e dovresti
        quindi scriverla in questo modo. Non è portabile in questo modo. */
    FILE *stream = fopen("bars_height.txt", "w");
    if (stream != NULL)
    {
        /* perché dividere la chiamata su più fprintf? Uno è sufficiente. Essendo stringhe
            puoi anche usare fputs che è più efficiente. */
        fprintf(stream, "22.3\n40\n10\n16.5\n21.2\n");

        /* fflush non è necessario perché fclose lo fa in automatico. */
        fclose(stream);        
    }

    /* in C la funzione main dovrebbe restituire un valore (in molti compilatori e in C++ 
        viene inserito return 0; di default). */
    return 0;
}


Per poter scrivere su di un file in una sottocartella è sufficiente scrivere "Upload\\istogrammi\\bars_height.txt" (nota il doppio \\) invece che "bars_height.txt".

Navarone89
Ad apatriarca.

Dove salva il file di testo creato? Grazie

nessuno.nobody
Il file viene creato nella directory in cui si trova l'eseguibile

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.