Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 19 su 19
  1. #11
    Utente di HTML.it
    Registrato dal
    Feb 2019
    Messaggi
    10
    Non funziona...
    Ho scritto il pezzo di codice che mi hai mandato e ho fatto una stampa di controllo sul valore di codice_prodotto, nome_prodotto e prezzo_prodotto prima e dopo la fscanf. Ho notato che il valore non cambia come se la fscanf non funzionasse eppure il compilatore non mi da nessun errore o warning. Hai qualche idea??

  2. #12
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,465
    Quote Originariamente inviata da McFonzie Visualizza il messaggio
    Non funziona...
    Ho scritto il pezzo di codice che mi hai mandato e ho fatto una stampa di controllo sul valore di codice_prodotto, nome_prodotto e prezzo_prodotto prima e dopo la fscanf. Ho notato che il valore non cambia come se la fscanf non funzionasse eppure il compilatore non mi da nessun errore o warning. Hai qualche idea??
    Che idea vuoi? Quel codice deve funzionare.

    Riproponi esattamente tutto il codice e il file dati che effettivamente hai utilizzato.

    Quale compilatore usi?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #13
    Utente di HTML.it
    Registrato dal
    Feb 2019
    Messaggi
    10
    Uso CodeBlocks.
    codice:
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    
    int main()
    {
        FILE *fptr;
        int codice_prodotto;
        char nome_prodotto[15];
        int prezzo_prodotto;
        if ((fptr = fopen("elencoProdotti.csv","r")) == NULL)
            {
                puts("Impossibile aprire file");
                return(1);
            }
    
    
    
    
        fscanf(fptr,"%d,%[^,],%d",&codice_prodotto,nome_prodotto,&prezzo_prodotto);
        printf("%3d  %15s  %3d\n", codice_prodotto, nome_prodotto, prezzo_prodotto);
    
    
    
    
        return 0;
    }
    File allegati File allegati

  4. #14
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,465
    Prima di tutto perché hai detto fino ad ora che utilizzavi la virgola come separatore se invece utilizzi il punto e virgola? Così perdiamo tempo ...

    Secondo punto, il file dei dati (il csv) è stato salvato in formato UTF8-BOM e non ANSI quindi dovrai leggere la testata, ovvero dovrai scrivere

    codice:
    	char bom[4];
    	fscanf(fptr, "%3s", bom);
    
    
    	fscanf(fptr, "%d;%[^;];%d", &codice_prodotto, nome_prodotto, &prezzo_prodotto);
    	printf("%3d  %15s  %3d\n", codice_prodotto, nome_prodotto, prezzo_prodotto);
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #15
    Utente di HTML.it
    Registrato dal
    Feb 2019
    Messaggi
    10
    Eh si come avevo detto nel #9 messaggio non ero certo di come fossero separati i campi. Poi per il secondo punto non sapevo di questa codifica, quando ho scritto il file su excel l'ho semplicemente salvato scegliendo l'opzione csv.
    Comunque ho provato il codice e funziona! Grazie!
    Quindi adesso mi basta fare un ciclo finchè fscanf non arriva ad EOF giusto? E mi potresti perfavore spiegare meglio questo fatto della testata?

  6. #16
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,465
    Quote Originariamente inviata da McFonzie Visualizza il messaggio
    Eh si come avevo detto nel #9 messaggio non ero certo di come fossero separati i campi.
    Ma prima di inviarmelo lo hai notato che usavi il ; ? Quindi ...

    Per il formato del file

    https://it.wikipedia.org/wiki/Byte_Order_Mark
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #17
    Utente di HTML.it
    Registrato dal
    Feb 2019
    Messaggi
    10
    Non l'avevo notato perchè quando lo aprivo me lo mostrava su excel e me lo formattava in celle.
    Quindi quale formato sarebbe più giusto in futuro?
    Mi spiego:
    Quando salvo su excel mi da diverse opzioni sul formato .csv: CSV UTF-8(delimitato da virgole), CSV(delimitato dal separatore di elenco), CSV(Macintosh), CSV(MS-DOS).
    Per non usare il bom quale dovrei usare?
    Ultima modifica di McFonzie; 13-02-2019 a 17:52

  8. #18
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,465
    Prova CSV(delimitato dal separatore di elenco)
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #19
    Utente di HTML.it
    Registrato dal
    Feb 2019
    Messaggi
    10
    Grazie,sei stato veramente gentile e di aiuto!
    Scusa se ti ho fatto faticare ahahha

Tag per questa discussione

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.