Visualizzazione dei risultati da 1 a 10 su 13

Hybrid View

  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2013
    Messaggi
    113
    in che modo? mi fai un esempio?

  2. #2
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,589
    Quote Originariamente inviata da sizeof Visualizza il messaggio
    in che modo? mi fai un esempio?
    codice:
                             if(5==scanf("%s %d %d %d %d", archi[i].denomi, &archi[i].voto, &archi[i].da.gg, &archi[i].da.mm, &archi[i].da.aa))
                                     fprintf(cfPtr, "%15s%10d%10d%2d%2d\n", archi[i].denomi, archi[i].voto, archi[i].da.gg, archi[i].da.mm, archi[i].da.aa);
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2013
    Messaggi
    113
    quindi considerando che scanf mi restituisce il valore intero del numero elementi letti, in questo caso verranno letti fino a 5 elementi..giusto?

  4. #4
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,589
    Quote Originariamente inviata da sizeof Visualizza il messaggio
    quindi considerando che scanf mi restituisce il valore intero del numero elementi letti, in questo caso verranno letti fino a 5 elementi..giusto?
    Più precisamente restituisce il numero di variabili "riempite" (non mi viene in mente in italiano xD), quindi in questo caso 5. Comunque sì, il concetto era quello...

    Poi comunque dovresti fare qualche controllo sull'input...
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2013
    Messaggi
    113
    il problema è che la variabile contatore mi serve effettivamenti per fare poi delle ricerche sulla struttura e quindi la utilizzo successivamente nella espressione condizionale del ciclo enumerativo for. per questo motivo metto (!feof(stdin)) e non un controllo esplicito sul numero di elementi...perchè in effetti non so quanti elementi saranno inseriti dallo standard input.

  6. #6
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,589
    Quote Originariamente inviata da sizeof Visualizza il messaggio
    il problema è che la variabile contatore mi serve effettivamenti per fare poi delle ricerche sulla struttura e quindi la utilizzo successivamente nella espressione condizionale del ciclo enumerativo for. per questo motivo metto (!feof(stdin)) e non un controllo esplicito sul numero di elementi...perchè in effetti non so quanti elementi saranno inseriti dallo standard input.
    Guarda che sai perfettamente che a ogni ciclo verranno letti da scanf 5 valori: 1 stringa e 4 interi.
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2013
    Messaggi
    113
    ok giusto.ma il problema è che quando inserisco EOF la i è gia autoincrementata e si aspetta un altro inserimento quando in effetti questo non avviene e quindi mi da sul file una riga così:
    0 0 0 0

    p.s. in effetti al contatore non succede nulla controllando la scanf.
    Ultima modifica di sizeof; 15-02-2014 a 20:59

  8. #8
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,589
    A dire il vero succede qualcosa, viene comunque incrementato, basta che cambi in
    codice:
    if(5!=scanf(...)) continue;
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

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