Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - esercizio sulle strutture
Forum - C/C++ - esercizio sulle strutture - Pagina 4

Pagine: [ 1 2 3 4 5 6 ] Precedente | Prossimo
Avatar
Matthew (Member)
Expert


Messaggi: 387
Iscritto: 29/01/2007

Segnala al moderatore
Postato alle 23:53
Venerdì, 19/03/2010
Testo quotato

Postato originariamente da wicca89:

una domanda un pò banale con il c quando volevo prendere una frase usavo gets se qui voglio che ne so a titolo mettere yes man come posso fare???
xk il cin me lo vedrebbe come yes=titolo e man=autore...



istream& getline (char* s, streamsize n );
istream& getline (char* s, streamsize n, char delim );

http://www.cplusplus.com/reference/iostream/istream/getline/


PM Quote
Avatar
Poggi Marco (Member)
Guru


Messaggi: 969
Iscritto: 05/01/2010

Segnala al moderatore
Postato alle 23:58
Venerdì, 19/03/2010
Usa getline()!

Esempio: grtline(d, 50) ;
Salvera i caratteri in d fino ad un massimo di 49 (50-1), o fin quando non viene premuto invio.

Ho provato la tua funzione, sembra a buon punto!
Però, a mio avviso, fa troppe cose. (Non dovrebbe chiedere all' utente cosa ordinare)

PM Quote
Avatar
wicca89 (Normal User)
Rookie


Messaggi: 45
Iscritto: 16/01/2009

Segnala al moderatore
Postato alle 0:09
Sabato, 20/03/2010
si ma se faccio qst:
void aggiungi(Tgalleria& galleria , Topera& opera){

     cout<<"Inserisci il titolo dell'opera da aggiungere nella galleria: ";
     cin.getline(galleria.opera[galleria.numero].titolo,101);
     cout<<"Inserisci l'autore del titolo dell'opera da aggiungere nella galleria: ";
     cin.getline(galleria.opera[galleria.numero].autore,101);
     cout<<"Inserisci la data di creazione: ";
     cin>>galleria.opera[galleria.numero].data.gg>>galleria.opera[galleria.numero].data.mm>>galleria.opera[galleria.numero].data.aa;
     cout<<"Inserisci il prezzo del libro: ";
     cin>>galleria.opera[galleria.numero].prezzo;

     galleria.numero++;
}
mi esce un casino mi stampa prima a video:
Inserisci il titolo dell'opera da aggiungere nella galleria: Inserisci l'autore del titolo dell'opera da aggiungere nella galleria:
e poi m fa inserire tutto...

PM Quote
Avatar
Matthew (Member)
Expert


Messaggi: 387
Iscritto: 29/01/2007

Segnala al moderatore
Postato alle 0:14
Sabato, 20/03/2010
La tua funzione di ordinamento è sbagliata.
Come ti ha suggerito Poggi Marco, darei un'occhiata alla teoria. :rotfl:

Ultima modifica effettuata da Matthew il 20/03/2010 alle 0:18
PM Quote
Avatar
Matthew (Member)
Expert


Messaggi: 387
Iscritto: 29/01/2007

Segnala al moderatore
Postato alle 0:20
Sabato, 20/03/2010
Testo quotato

Postato originariamente da Poggi Marco:

Usa getline()!

Esempio: grtline(d, 50) ;
Salvera i caratteri in d fino ad un massimo di 49 (50-1), o fin quando non viene premuto invio.

Ho provato la tua funzione, sembra a buon punto!
Però, a mio avviso, fa troppe cose. (Non dovrebbe chiedere all' utente cosa ordinare)



Giusto, viene già chiesto in precedenza. E la funzione stessa come argomento contiene già la scelta dell'utente. Resta il fatto che l'algoritmo di ordinamento è sbagliato.

PM Quote
Avatar
Poggi Marco (Member)
Guru


Messaggi: 969
Iscritto: 05/01/2010

Segnala al moderatore
Postato alle 0:25
Sabato, 20/03/2010
Sicuramente è un problema del baffer da tastiera.
Prima ci chiedere la data con il cin, devi svuotarlo.
A tale scopo usa la funzione " fflush(stdin); ".

PM Quote
Avatar
Poggi Marco (Member)
Guru


Messaggi: 969
Iscritto: 05/01/2010

Segnala al moderatore
Postato alle 0:27
Sabato, 20/03/2010
Testo quotato

Postato originariamente da Matthew:

Testo quotato

Postato originariamente da Poggi Marco:

Usa getline()!

Esempio: grtline(d, 50) ;
Salvera i caratteri in d fino ad un massimo di 49 (50-1), o fin quando non viene premuto invio.

Ho provato la tua funzione, sembra a buon punto!
Però, a mio avviso, fa troppe cose. (Non dovrebbe chiedere all' utente cosa ordinare)



Giusto, viene già chiesto in precedenza. E la funzione stessa come argomento contiene già la scelta dell'utente. Resta il fatto che l'algoritmo di ordinamento è sbagliato.



Dove è sbagliato (a parte chiedere all' utente cosa ordinare?)

PM Quote
Avatar
Matthew (Member)
Expert


Messaggi: 387
Iscritto: 29/01/2007

Segnala al moderatore
Postato alle 0:31
Sabato, 20/03/2010
Un'altro problemino: la funziona aggiungi così com'è contiene un argomento di troppo. Il secondo argomento infatti è inutilizzato. Non so se la traccia che stai seguendo vada proprio seguita alla lettera. Potresti semplicemente eliminare quell'argomento. Se però la traccia va seguita alla lettera, sarebbe meglio creare il nuovo libro nella funzione principale e poi passarlo a quella di inserimento.

PM Quote
Pagine: [ 1 2 3 4 5 6 ] Precedente | Prossimo