Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1

    [C] Utilizzo della fscanf

    Salve volevo sapere se eseguendo queste due linee di codice,
    memorizzo un valore presente nella seconda riga di un file che devo caricare.

    int riga2 = 1;
    FILE* inFile = fopen("tdm.dat","r");
    #define M = fscanf(inFile,"%d",&riga2);

    Vorrei che il valore presente nella seconda riga venisse memorizzato nella M. E' possibile ed
    è corretto?
    Il file che devo caricare, in questo caso tdm.dat, contiene dei numeri interi.

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Assolutamente no ... cosa c'entra la define? Se devi programmare in C, dovresti studiare le basi del linguaggio da un qualsiasi libro, prima di scrivere codice ...

    Se devi memorizzare dati nella variabile M (non ti consiglio di usare nomi maiuscoli per le variabili) la devi dichiarare ed usare all'interno della fscanf così

    int M;
    fscanf(inFile,"%d", &M);

    Se devi leggere dalla seconda riga, leggi la prima a vuoto (ma non l'avevi già chiesto questo fatto ? E non avevi gia' avuto risposta ?)
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    int M;
    fscanf(inFile,"%d", &M);

    Se facessi come mi hai consigliato, come potrei rendere visibile il valore di M al di fuori del metodo?

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Metodo?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Apro il file all'interno di un metodo e vorrei che il valore della M fosse visibile anche al di fuori del metodo. Vorrei che fosse visibile in tutta classe.

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Metodo ... classe ... ma non stai programmando in C?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Invece di fare queste precisazioni che pur essendo giuste le considero superflue
    dato che sto chiedendo aiuto in un form e ciò inplica che non sono molto pratica del C, potresti rispondere a ciò che ho chiesto dato che è chiaro anche se non è preciso.
    Se non ti va di aiutarmi non farlo però smettila di rispondere in questo modo.
    Grazie

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Originariamente inviato da sandrinolli
    Invece di fare queste precisazioni che pur essendo giuste le considero superflue
    dato che sto chiedendo aiuto in un form e ciò inplica che non sono molto pratica del C, potresti rispondere a ciò che ho chiesto dato che è chiaro anche se non è preciso.
    Se non ti va di aiutarmi non farlo però smettila di rispondere in questo modo.
    Grazie
    Guarda che sei tu che chiedi aiuto e devi farlo in modo che si possa capire cosa stai facendo e cosa non riesci a fare.

    Scrivere che si programma in C e mostrare che usi la funzione fscanf e poi parlare di classi e metodi senza che tu ne abbia mai fatto riferimento prima, esige chiarimenti da parte tua e non "rimproveri" a chi ti chiedi ulteriori precisazioni per capire.

    Quindi, se ti fai capire e spieghi la situazione, mostri di che classe stai parlando e parli di C++, mostrandoti meno insofferente e un po' piu' educata, allora potrai avere risposte da me.

    Altrimenti, auguri.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Non mi sembra di essere stata maleducata e se cosi ti è sembrato ti chiedo anche scusa.
    Ritengo sia giustissimo che colui che chiede aiuto debba spigarsi bene e debba fornire precisazioni a colui che è disposto a dargli una mano pero ci sono modi e modi anche nel chiedere chiarimenti.

  10. #10
    La richiesta di precisazioni era più giustificata, dato che, se si stesse parlando di una classe C++, la spiegazione cambierebbe molto. Comunque per rendere visibile la variabile a tutto il file (o a tutta "l'unità di compilazione", per essere puntigliosi), ti basta dichiararla al di fuori dello scope di qualunque funzione; in genere si usa mettere le variabili globali in testa al file, subito dopo gli include.
    codice:
    #include <stdio.h>
    
    int VariabileGlobale;
    
    void Quadrato(void);
    
    int main(void)
    {
        printf("%s", "Inserisci un numero intero: ");
        if(scanf("%d", &VariabileGlobale)!=1)
        {
            fputs("Valore non valido.\n",stderr);
            return EXIT_FAILURE;
        }
        printf("VariabileGlobale impostata a %d", VariabileGlobale);
        Quadrato();
        return EXIT_SUCCESS;
    }
    
    void Quadrato(void)
    {
        printf("Il quadrato di %d è %d.\n", VariabileGlobale, VariabileGlobale*VariabileGlobale);
    }
    Tieni comunque conto che è considerata cattiva pratica di programmazione usare variabili globali quando non è necessario, spesso può essere più ragionevole passare alle altre funzioni i dati in questione come parametri.
    codice:
    #include <stdio.h>
    
    void Quadrato(int Numero);
    
    int main(void)
    {
        int numero;
        printf("%s", "Inserisci un numero intero: ");
        if(scanf("%d", &numero)!=1)
        {
            fputs("Valore non valido.\n",stderr);
            return EXIT_FAILURE;
        }
        printf("numero impostata a %d", numero);
        Quadrato(numero);
        return EXIT_SUCCESS;
    }
    
    void Quadrato(int Numero)
    {
        printf("Il quadrato di %d è %d.\n", Numero, Numero*Numero);
    }
    Amaro C++, il gusto pieno dell'undefined behavior.

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.