Cita:
Iniciado por lareto Ah, no reparé en
Entonces, estás abriendo el oftream en modo "binario", ¿verdad? Entonces la secuencia debería ser al revés:
ofs.write(&RetornoCarro,1); // \r
ofs.write(&NuevaLinea,1); // \n
Pero, para escribir texto, me parece que es mejor abrir el ofstream en modo texto, y usar <<.
Bueno, primera equivocación por mi parte.
Por falta de atención, al hacer copia/pega de la función que guarda el archivo en modo binario no corregí eso y efectivamente me estaba escribiendo en binario.
Por otro lado, entre esa acertada observación y la posterior recomendación de escribir en el fichero mediante el operador << ya funciona.
Sólo he tenido que hacer otra pequeña modificación, y aprovecho para preguntarla:
Yo tenía definido los caracteres especiales así:
Código C++:
Ver originalchar NuevaLinea=10;
char RetornoCarro=13;
char FinDeArchivo=26;
Sin embargo esto también me estaba ocasionando problemas, y finalmente sólo he añadido "\r\n" (retorno de carro+nueva linea) para que por fin el fichero sea legible.
Entonces aprovecho para preguntar que diferencia hay entre una cosa y la otra.
Y finalmente te muestro el código que SI funciona
Código C++:
Ver originalstd::string registroT="~T|";
registroT.append(concepto->datonodo.LeeCodigo());
registroT.append("|");
registroT.append(concepto->datonodo.LeeTexto());
registroT.append("|");
ofs<<registroT;
ofs<<"\r\n";
(Por cierto, que gedit de esta forma me detecta la codificacion ISO-8859-15 y fin de línea Linux, pero el caso es que funciona)
Saludos y gracias!