• Regolamento Macrocategoria DEV
    Prima di aprire un topic nella Macrocategoria DEV, è bene leggerne il suo regolamento. Sei un'azienda o un hosting/provider? Qui sono anche contenute informazioni per collaborare con Sciax2 ed ottenere l'accredito nella nostra community!

Problema risolto "Rubrica" in C

gedamial

Utente Senior
Autore del topic
9 Giugno 2010
1.937
69
Miglior risposta
0
Salve.
Spero solo che non applicheranno come regola del forum il fatto che non si deve postare un problema dopo l'altro :emoji_relieved:

Well, il mio problemino è questo e vi assicuro che davvero non ho capito che provola ho sbagliato...

N.B: Non è il compilatore che mi da l'errore... è il programma!


Codice:
Perfavore, Entra oppure Registrati per vedere i codici!


Ecco lo screen dell'errore:

Perfavore, Entra oppure Registrati per vedere i Link!


A parole: mi chiede di inserire il nome (fin qui funziona divinamente), ma quando lo inserisco dovrebbe uscirmi un secondo output e, di conseguenza, una seconda attesa del mio input.
Ciò non accade. Mi viene chiesto solo il nome (primo output e primo input) poi dopo escono tutti gli altri output senza inserire nient'altro...
INOLTRE nel riepilogo, se ci fate caso nello screen, nome è uguale a 0 (ma come O.o io ho messo Michele), cognome è uguale a un simbolo (ma io non ho inserito niente!), numero telefonico è uguale ad un numero casuale (ma chi caspita l'ha inserito!?), residenza è uguale ad un simbolo.

Chi ci vuole un WTF? :indiavolato:

Grazie in anticipo!
 
Salve.
Spero solo che non applicheranno come regola del forum il fatto che non si deve postare un problema dopo l'altro :emoji_relieved:

Well, il mio problemino è questo e vi assicuro che davvero non ho capito che provola ho sbagliato...

N.B: Non è il compilatore che mi da l'errore... è il programma!


Codice:
Perfavore, Entra oppure Registrati per vedere i codici!


Ecco lo screen dell'errore:

Perfavore, Entra oppure Registrati per vedere i Link!


A parole: mi chiede di inserire il nome (fin qui funziona divinamente), ma quando lo inserisco dovrebbe uscirmi un secondo output e, di conseguenza, una seconda attesa del mio input.
Ciò non accade. Mi viene chiesto solo il nome (primo output e primo input) poi dopo escono tutti gli altri output senza inserire nient'altro...
INOLTRE nel riepilogo, se ci fate caso nello screen, nome è uguale a 0 (ma come O.o io ho messo Michele), cognome è uguale a un simbolo (ma io non ho inserito niente!), numero telefonico è uguale ad un numero casuale (ma chi caspita l'ha inserito!?), residenza è uguale ad un simbolo.

Chi ci vuole un WTF? :indiavolato:

Grazie in anticipo!

il motivo è piuttosto semplice .. %c legge un un carattere solo per ovviare al problema usa %s sia per leggere sia per scrivere ... c'è anche un dettaglio da considerare però con %s quando usi scanf non devi passare per riferimento l'argomento bensì solo inserendo la variabile perchè è gia passato come puntatore a char.

Codice:
Perfavore, Entra oppure Registrati per vedere i codici!
 
Perché hai messo &num SOLO QUI?

li è un intero(decimale) non un vettore di stringa. te ne elenco alcuni :
%i = lettura /stampa intero
%c = lettura / stampa carettere
%f = lettura / stampa valore float/double
%e = lettura / stampa valore double/float max precisione
%s = lettura / scrittura (non vuole la & per lo scanf per il motivo spiegato sopra)
%d = lettura /scrittura decimale
%x = lettura /scrittura esadecimale
%o = lettura/scrittura base otto

poi ce ne sono altri che sarebbero per i derivati long long int/long int /unsigned int etc..
 
li è un intero(decimale) non un vettore di stringa. te ne elenco alcuni :
%i = lettura /stampa intero
%c = lettura / stampa carettere
%f = lettura / stampa valore float/double
%e = lettura / stampa valore double/float max precisione
%s = lettura / scrittura (non vuole la & per lo scanf per il motivo spiegato sopra)
%d = lettura /scrittura decimale
%x = lettura /scrittura esadecimale
%o = lettura/scrittura base otto

poi ce ne sono altri che sarebbero per i derivati long long int/long int /unsigned int etc..

La differenza fra %i e %d?
 
che specifici la base dieci. non c'è nessuna differenza nel tuo caso. Per esempio se voglio lavorare con esadecimale a quel punto c'è differenza ed è quindi importante usare %x.

Il numero telefonico dev'essere per forza un numero intero, no? Quindi avrei dovuto usare %i !?
 
Il numero telefonico dev'essere per forza un numero intero, no? Quindi avrei dovuto usare %i !?

va bene %d.. quelli sono solo per operazioni tipo conversioni somma tra esadecimali , calcoli accurati (%e ) etc... Ripeto a te non servono, per questo programma, te li ho citati solo perché mi hai chiesto perché ci fosse il &num.
 
va bene %d.. quelli sono solo per operazioni tipo conversioni somma tra esadecimali , calcoli accurati (%e ) etc... Ripeto a te non servono, per questo programma, te li ho citati solo perché mi hai chiesto perché ci fosse il &num.

Genius :soso:

Ennesimo problema risolto grazie a voi :emoji_relieved:

AGGIORNAMENTO:

Chiudete pure :emoji_relieved: è inutile tenere il topic come NON RISOLTO.
@Dvdxseo @Ignazio96
 
Ultima modifica: