Miren tengo un archivo que divido en campos con delimitadires, escribo cadenas encriptadas en cada campo. El problema es que luego al obtener esas cadenas no las recojo correctamente, creo que es porque uso string en vez de char o no sé.
Lo leo todo su contenido así:
Código
string almacen::obtener_campo(int campo) { ifstream archivo; archivo.open(directorio, ifstream::in); if (!archivo) return ""; else{ string contenido; while (archivo.good()) contenido += archivo.get(); archivo.clear(); archivo.close(); }
Me dice que tiene lo siguiente:
Citar
CPcqGW51VRuFPRzAxwEMholaaaaaaaaque haaceess maripooossssssssssa7mgF5BDu2xspuP4DtANxO■¦©^×{oT╗┐Gç_÷SÆs
È~©BüQ³f5Ä{░µ ðø¥¹Q:╗\‗Y╚§.áë╔¾¶ÈÙ│Ï,jI¸Ñ°┴!▀Òs
È~©BüQ³f5Ä{░µ ðø¥¹Q:╗\‗Y╚§.áë╔¾¶ÈÙ│Ï,jI¸Ñ°┴!▀Òs
Pero el archivo con el bloc de notas muestra lo siguiente:
Citar
CPcqGW51VRuFPRzAxwEMholaaaaaaaaque haaceess maripooossssssssssa7mgF5BDu2xspuP4DtANxOþݸ^ž{oT»¿G‡_öS’s
¢&H‹>VßnÎÀeØo®QNЛ¾ûQ:»\òYÈõ. ‰ÉóôÔë³Ø,jI÷¥øÁ!ßãs
Ô¶~¸BQüf5Ž{°æÔ;pÉE^ª•€UÏ·Ù¹ÒÛŒM™ÈuUÌvýýýý^ÿ^ÿnyFtCn4jPKItqWCAdJn6QTMTgH0wSWCMQOKA3H6OxDNJOWH2PIWCy3k79QJwÿ
¢&H‹>VßnÎÀeØo®QNЛ¾ûQ:»\òYÈõ. ‰ÉóôÔë³Ø,jI÷¥øÁ!ßãs
Ô¶~¸BQüf5Ž{°æÔ;pÉE^ª•€UÏ·Ù¹ÒÛŒM™ÈuUÌvýýýý^ÿ^ÿnyFtCn4jPKItqWCAdJn6QTMTgH0wSWCMQOKA3H6OxDNJOWH2PIWCy3k79QJwÿ
¿Porque no accedo a todos los datos? ¿acaso no puedo obtener todos los caracteres con ifstream.get()? ¿qué solución puedo dar?
Saludos y gracias.
Edito: Sin embargo caracteres alfanumericos los lee sin problemas, pero los raros no.. ¿ que son ? xd
Edito: Acabo de abrirlo en binario || fstream::binary y el resultado ha sido el mismo.