Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16

Discussione: errore in codice c

  1. #1

    errore in codice c

    ciao ho questo codice:
    codice:
    #include <stdio.h>
    #include <stdlib.h>
    
    #define kFileDaLeggere          "input.txt"
    #define kFileDaScrivere         "output.txt"
    #define kLunghezzaMaxStringa    100
    
    #define kErroreIO               -1
    #define kErroreMemoria          -2
    #define kNessunErrore           0
    
    double      numero1,numero2,numero3;
    char        *stringa;
    
    int main (void);
    int LeggiDaFile(void);
    int ScriviSuFile(void);
    
    int main (void)
    {
        int         errore;
        
        errore=LeggiDaFile();
        if(errore)
            return errore;
        errore=ScriviSuFile();
        if(errore)
            return errore;
        
        return kNessunErrore;
    }
    
    int LeggiDaFile(void)
    {
        FILE        *ingresso;
        
        printf("Lettura dal file %s\n",kFileDaLeggere);
        ingresso=fopen(kFileDaLeggere,"r");
        if(ingresso==NULL)
            return kErroreIO;
        stringa=calloc(kLunghezzaMaxStringa,sizeof(char));
        if(stringa==NULL)
            return kErroreMemoria;
        fscanf(ingresso,"%lg %lg %lg %s",&numero1,&numero2,&numero3,stringa);
        printf("Numero 1: %g\nNumero 2: %g\nNumero 3: %g\nStringa: %s\n",numero1,numero2,numero3,stringa);
        printf("\n");
        fclose(ingresso);
        
        return kNessunErrore;
    }
    
    int ScriviSuFile(void)
    {
        FILE        *uscita;
        
        printf("Scrittura sul file %s\n",kFileDaScrivere);
        uscita=fopen(kFileDaScrivere,"w");
        if(uscita==NULL)
            return kErroreIO;
        fprintf(uscita,"%g %g %g %s\n",numero1,numero2,numero3,stringa);
        printf("Ora puoi aprire il file %s e verificare che contenga una copia di %s\n",kFileDaScrivere,kFileDaLeggere);
        printf("\n");
        return kNessunErrore;
    }
    il problema si presenta al momento della compilazione...

    nuovo.c: In function ‘LeggiDaFile’:
    nuovo.c:44: warning: ignoring return value of ‘fscanf’, declared with attribute warn_unused_result

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802

    Re: errore in codice c

    Originariamente inviato da morcomucchia
    il problema si presenta al momento della compilazione...

    nuovo.c: In function ‘LeggiDaFile’:
    nuovo.c:44: warning: ignoring return value of ‘fscanf’, declared with attribute warn_unused_result
    È un warning, non un errore. L'eseguibile viene creato lo stesso. Ti sta semplicemente dicendo che stai ignorando il valore di ritorno della funzione fscanf: tale valore può servirti per verificare eventuali problemi con la lettura da file.

    Come compili?
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    compilo dal terminale...
    comunque, se non è un errore il programma non dovrebbe partire lo stesso??

  4. #4
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da morcomucchia
    compilo dal terminale...
    Come?

    Originariamente inviato da morcomucchia
    comunque, se non è un errore il programma non dovrebbe partire lo stesso??
    Sì, dovrebbe partire lo stesso. Ti da problemi? Prova a controllare il valore di ritorno e vedi se significa errore..
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    466
    Originariamente inviato da morcomucchia
    compilo dal terminale...
    Originariamente inviato da Alex'87
    Come?
    Sta compilando con gcc.. credo.

  6. #6
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da simo_85
    Sta compilando con gcc.. credo.
    Ok, ma vorrei che postasse il comando completo che usa per compilare (se indica opzioni particolari ovviamente, solo gcc main.c non dice niente..).
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    466
    Originariamente inviato da Alex'87
    Ok, ma vorrei che postasse il comando completo che usa per compilare (se indica opzioni particolari ovviamente, solo gcc main.c non dice niente..).
    Ah, ok , comunque io ho provato a compilarlo con gcc e non dà nessun warning.. Nemmeno con il flag -Wall -pedantic

  8. #8
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Originariamente inviato da morcomucchia
    compilo dal terminale...
    comunque, se non è un errore il programma non dovrebbe partire lo stesso??
    La compilazione serve a creare l'eseguibile. Per mandarlo in esecuzione si deve, appunto, avviare l'eseguibile creato.
    La compilazione non manda in esecuzione il risultato dell'elaborazione.


    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

  9. #9
    compilo con il seguente makefile:

    prova: prova.c

    gcc -ansi -Wall -O prova.c -o prova

    pulisci:

    rm-f prova.o

    pulisci_tutto:

    rm-f prova prova.o

  10. #10
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    1,326
    Se il problema è solo quello, puoi tranquillamente ignorarlo, non comporta nulla. Se vuoi comunque eliminare la segnalazione di warning, o controlli il valore di ritorno della fscanf() oppure cerchi nel manuale del gcc se esiste qualche flag per mettere a tacere il compilatore... prova con -Wno-unused-result.
    every day above ground is a good one

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.