Ciao a tutti premetto che sono uno studente di terza superiore (anzi ora quarta), e ho imparato la programmazione imperativa con c++ durante quest'anno scolastico. Recentemente mio papà mi ha chiesto di fare un programmino che gli permettesse di scrivere una serie di attività e la data di quando le esegue. Ad esempio se il giorno 21/06/2011 fa un lavoro X vorrebbe dire al mio programma che ha fatto quel lavoro e il giorno, e a richiesta stampare tutti i lavori o i lavori divisi per mese o per anno. Se mi sono spiegato male ditemelo che cerco di farlo meglio
. Ho pensato di fare un record con due array di caratteri, uno di dimensione 10 per la data e uno di dimensione 1000 per l'attività. Poi una volta inseriti i dati salvo il record in un file. Ho fatto una funzione che rileva la data odierna, chiede all'utente se l'attività è stata svolta in quella data e, se la risposta è no, chiede all'utente la data in cui è stata svolta (con tutti i controlli per giorno, mese, anno), e infine chiede di scrivere l'attività svolta. Per la data l'input è un array di caratteri per l'attività l'input è una stringa e poi la converto in array di caratteri per assegnarla alle variabili del record. Ad esempio:
codice:
getline(cin, es);
strcpy(att.attes,es.c_str());
Poi il record viene restituito alla funzione per scrivere sul file e scritto. Il problema è che se vado a controllare il contenuto della data memorizzata nel record ottengo la data e subito attaccata l'attività. Esempio: la data è "21/06/2011", l'attività "xyz", l'output è:
21/06/2011xyz
Se poi stampo anche l'attività e prima uno spazio, cioè:
codice:
cout<<att.dataes<<" "<<att.attes;
ottengo:
21/06/2011xyz xyz
Come posso fare per risolvere ciò??
Grazie a tutti...