Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Como pasar enteros a string

Estas en el tema de Como pasar enteros a string en el foro de C/C++ en Foros del Web. Mi duda más concreta acerca es, como pasar tres enteros a un formato de string "1/1/1970", es decir recibo 3 enteros dia = 1; mes ...
  #1 (permalink)  
Antiguo 10/11/2010, 02:23
 
Fecha de Ingreso: noviembre-2010
Mensajes: 1
Antigüedad: 14 años, 1 mes
Puntos: 0
Como pasar enteros a string

Mi duda más concreta acerca es, como pasar tres enteros a un formato de string "1/1/1970", es decir

recibo 3 enteros dia = 1;
mes = 1;
anyo = 1970;

y quiero sacar por salida estandar esa fecha ==> "1/1/1970"




esto es lo q tengo hecho:


void inicializaFecha (TFecha &f){
f.dia = 1;
f.mes = 1;
f.anyo = 1970;
}

void inicializaFecha(TFecha &f, int dia, int mes, int anyo)
{
f.dia = dia;
f.mes = mes;
f.anyo = anyo;
}

void muestraFecha(const TFecha &f){
int d,m,a;

d = f.dia;
m = f.mes;
a = f.anyo;

std::string sdia,smes,sanyo;
std::stringstream dia,mes,anyo;

dia << d;
mes << m;
anyo << a;

sdia = dia.str();
smes = mes.str();
sanyo = anyo.str();

std::cout << sdia << "/" << smes << "/" << sanyo << std::endl;
};

pero no me pasa los siguientes test:


TEST(ConstructorPorDefecto) {
TFecha f;
inicializaFecha(f);
muestraFecha(f);
CHECK_OUTPUT("1/1/1970");
}

TEST(InitYEscribe) {
TFecha f;
inicializaFecha(f, 12, 10, 1492);
muestraFecha(f);
CHECK_OUTPUT("12/10/1492");

inicializaFecha(f, 21, 10, 1492);
muestraFecha(f);
CHECK_OUTPUT("21/10/1492");
}





muchas gracias y un saludo!!!
  #2 (permalink)  
Antiguo 10/11/2010, 16:11
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años, 8 meses
Puntos: 228
Respuesta: Como pasar enteros a string

posiblemente el CHECK_OUTPUT que no se que sea, no lo valida porque la fecha deberia ser 01/01/1970.
Por eso deberias agregar una opcion que se fija si el entero es mayor o no a 10, si es menor imprimis un cero y despues el numero.

std::cout << (sdia < 10 ? "0": "") << sdia << "/" << (smes < 10 ? "0": "") smes << "/" << sanyo << std::endl;

Etiquetas: enteros, pasar, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:03.