Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    fwrite o fprintf per scrivere su file (xCode)

    Ciao a tutti, ho iniziato a scrivere un piccolo programma in C per gestire le mie azioni ma ho dei problemi con lo scrivere i dati che io inserisco da riga di comando in un file che ho salvato (.txt) nella cartella che ho creato da xCode (mac).
    Il codice che fino ad ora ho scritto e':

    codice:
    #include <stdio.h>
    #include <string.h>
    
    int main(int argc, const char * argv[])
    {
    
        float x;
        int i=0;
        int f;
        float investimento;
        char societa[20];
        FILE * pFile;
        
        pFile = fopen("Finanza.txt", "wb");
        if (pFile == NULL) perror ("Error opening file");
        
        do{
            printf("Digita il nome della compagnia: ");
            scanf("%s", societa);
            
            printf("Inserire il prezzo per azione di %s: ", societa);
            scanf("%f", &x);
            printf("Inserire il numero di azioni: ");
            scanf("%d", &f);
            
          
            fwrite (&societa , sizeof(societa) , 1 , pFile);
            
            
            investimento = x*f;
            printf("Il tuo investimento in %s risulta essere: %f \n", societa, investimento);
            
            
        } while (x != 0);
        
        fclose(pFile);
        
        return 0;
    }
    Ma quando apro il file non c'e scritto nulla. Io vorrei far si che tramite il ciclo io possa scrivere nome, denaro e quantità e ogni volta viene scritto sul file questi dati.

  2. #2
    Utente bannato
    Registrato dal
    Apr 2012
    Messaggi
    510
    Occhio a questa istruzione:

    codice:
    fwrite (&societa , sizeof(societa) , 1 , pFile);
    Per scrivere l' array devi passare l' indirizzo del primo elemento:

    codice:
    fwrite (societa , sizeof(societa) , 1 , pFile);
    Ma a questo punto il codice potrebbe non comportarsi correttamente perché tutte quelle scanf sporcano il buffer.Provvedi a sostituirle con fgets/atoi.

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304

    Moderazione

    Il linguaggio va obbligatoriamente indicato nel titolo ed il codice va postato all'interno degli appositi tag CODE, per renderlo formattato.

    Correggo io.

    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

  4. #4
    Utente di HTML.it L'avatar di torn24
    Registrato dal
    Aug 2008
    Messaggi
    551

    ciao

    Come ti hanno suggerito correggi fwrite

    Tu stai salvando il file , in formato binario , non importa l'estensione del file , quella serve
    solo al sistema operativo , per indicare "tratta il file come un file di testo" , MA NON è UN FILE DI TESTO .come se cambi l'estensione ad un file immagine , rimane sempre un file immagine .
    poi se vuoi aggiungere al file nuovi dati ,senza cancellarlti , sostituisci , "wb" con "ab" nella fopen, per leggere il file , dovrai farlo "almeno nel modo corretto " con un altro programma
    visto che il file è binario , altrimenti se vuoi salvarlo in formato testo usa la fprintf ();
    e nella fopen() "w" e leggi aprendo il file con un editor di testi .
    Tecnologia

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 © 2024 vBulletin Solutions, Inc. All rights reserved.