<div dir="ltr">Hola Alberto,<div><br></div><div>El problema es que intentas guardar todos los caracteres directamente en el objeto, 's', que es de tipo 'string'. Como desconoces por completo la representación interna de la clase 'string', no sabes dónde estás guardando los datos ni tampoco si has construido un objeto de tipo 'string' correctamente. Por esta razón se debe usar el constructor de una clase, porque "nosotros" no sabemos nada de su gestión interna.</div><div><br></div><div>La solución es guardar una cadena de caracteres como un array (dinámico) de 'char' y luego construir el objeto 'string' a partir de tal array. Por ejemplo,</div><div><br></div><div>// Nombre</div><div>char *pCadena = new char[nLength];</div><div><div>fentrada.read( pCadena, nLength );</div><div>v2[i].SetNombre( string(pCadena) );</div></div><div>delete[] pCadena;</div><div><br></div><div>// Apellido 1</div><div><div>pCadena = new char[nLength];</div><div>fentrada.read( pCadena, nLength );</div><div>v2[i].Apellido1( string(pCadena) );</div></div><div><div>delete[] pCadena;</div></div><div><br></div><div><div>// Apellido 2</div><div><div>pCadena = new char[nLength];</div><div>fentrada.read( pCadena, nLength );</div><div>v2[i].Apellido2( string(pCadena) );</div></div><div>delete[] pCadena;</div><div><br></div></div><div>Como puedes ver, no necesitas el objeto 's', ya que podemos instanciar un objeto temporal de tipo 'string' y pasarlo directamente a cada función miembro.</div><div><br></div><div><br></div><div>Espero que esto aclare la duda.</div><div><br></div><div>Steven</div><div><br><div class="gmail_extra"><br><div class="gmail_quote">2015-07-08 5:09 GMT-04:00 Alberto <span dir="ltr"><<a href="mailto:tuit.alberto.sinc@gmail.com" target="_blank">tuit.alberto.sinc@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">Muchas gracias Steven Davidson por tu aporte.<br>
<br>
Ahora, me tope con problemas a la hora de la lectura, por ahora tengo esto:<br>
<br>
string::size_type nLength;<br>
int edad;<br>
string s;<br>
<br>
fentrada.read( reinterpret_cast< char *>( &nLength ), sizeof nLength );<br>
fentrada.read( reinterpret_cast< char *>(&s), nLength );<br>
v2[i].SetNombre(s);<br>
fentrada.read( reinterpret_cast< char *>( &nLength ), sizeof nLength );<br>
fentrada.read( reinterpret_cast< char *>(&s), nLength );<br>
v2[i].SetApellido1(s);<br>
fentrada.read( reinterpret_cast< char *>( &nLength ), sizeof nLength );<br>
fentrada.read( reinterpret_cast< char *>(&s), nLength );<br>
v2[i].SetApellido2(s);<br>
fentrada.read( reinterpret_cast< char *>( &edad ), sizeof edad );<br>
v2[i].SetEdad(edad);<br>
<br>
<br>
Aunque supongo que tendre que mirarlo un poco mas<br>
<div class=""><div class="h5"><br></div></div></blockquote></div></div></div></div>