Ciao a tutti, ho "creato" una libreria (libdataora) che tramite due funzioni mi dovrebbe dare in ritorno rispettivamente una stringa della data odierna (con il formato AAAA/MM/GG) e una stringa con l' ora di quando è stata eseguito il programma (con il formato OO:MM:SS).

Questo è il file della libreria (libdataora.h):
codice:
#ifndef LIBDATAORA_H
#define   LIBDATAORA_H
class DataOra{
public:
const char *FData();
const char *FOra();};
#endif   /* LIBDATAORA_H */
Questo è il file cpp (dataora.cpp):
codice:
#include <stdio.h>
#include <string.h>
#include <time.h>
#include <iostream>
#include <sstream>
#include "libdataora.h"
using namespace std;

const char* DataOra::FData()
{
time_t t = time(NULL);
tm *tempo;
tempo = localtime(&t);
int giorno,mese,anno;
giorno=tempo->tm_mday;
mese=1+(tempo->tm_mon);
anno=1900+(tempo->tm_year);
  std::ostringstream D;

  D << giorno << "/" << mese << "/" << anno ;
  std::cout << D.str() << std::endl;

std::string str;
str=D.str();
const char *cstr = str.c_str();
return cstr;
}

const char* DataOra::FOra()
{
time_t t = time(NULL);
tm *tempo;
tempo = localtime(&t);
int ora,minuti,secondi;
ora=tempo->tm_hour;
minuti=tempo->tm_min;
secondi=tempo->tm_sec;
  std::ostringstream O;
  O << ora << ":" << minuti << ":" << secondi ;
  std::cout << O.str() << std::endl;

std::string str;

str=O.str();
const char *cstr = str.c_str();
return cstr;
}
E questo è il file del main (main.cpp):
codice:
#include <stdio.h>
#include <stdlib.h>
#include "libdataora.h"

int main() {
char d,o;
DataOra DO;
	d=*DO.FData();
    o=*DO.FOra();
	//printf("%d",&d);
	//printf("%c",&d);
	//printf("%d",&c);
	//printf("%c",&o);
	printf("\n\n");
    return 0;
}
Il problema si crea perchè quando vado a fare il printf sul main.cpp non vengono visualizzate le stringhe corrette, infatti se faccio con %d visualizzo dei numeri (a mio parere scaturiti dalla stringa esatta della data o dell' ora, ma non so come fare per ritornare in dietro e ricavare la stringa corretta) e se faccio %c invece stampa a video dei caratteri ASCII strani, penso che sia il corrispondente del numero. Come posso risolvere ?

PS: Questo programma mi serve, poi, per immettere dei dati all 'interno di un database MySQL, e invece di scrivere tutto su un file .cpp volevo "pulire il codice" dividendo in vari file, ognuno con delle funzioni particolari.

Grazie.