Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Xedrox en 24 Diciembre 2012, 01:36 am



Título: Generar archivo en C++
Publicado por: Xedrox en 24 Diciembre 2012, 01:36 am
Buenas, estoy tratando de hacer un programa que genere un archivo con la siguiente estructura:

Código:
XXXX<caracteres long long en binario>AAAA

Para estoy tratando de hacerlo con el siguiente programa:

Código:
#include<iostream>
#include<fstream>
#include<sstream>

using namespace std;

int main()
{
    struct transaccion
    {
           string campo1;
           long long campo2;
           long long campo3;
           string campo4;
    };
    
    ofstream file;
    file.open("Base.txt",ios::binary);
    
    struct transaccion trx;
    
    trx.campo1="XXXX";
    trx.campo2=1000;
    trx.campo3=1000;
    trx.campo4="AAAA";
    
    file.write((char *)&trx, sizeof(trx));
    file.close();
    
    return 0;
      
}

El tema es que me queda todo binario :(. Alguna idea como hacerlo. Por favor necesito que me quede de esta manera, ya se que es al pedo hacer esto pero necesito que al abrirlo con el Notepad++ se vea como describo al principio.

Gracias
Saludos



Título: Re: Generar archivo en C++
Publicado por: x64core en 24 Diciembre 2012, 06:42 am
para convertir los valores puedes usar itoa ( no es portable o puede implementar una ) luego simplemente vas añadiendo las cadenas  y pasas el buffer final a la función de escribir.


Título: Re: Generar archivo en C++
Publicado por: Xedrox en 24 Diciembre 2012, 20:06 pm
Estuve leyendo lo de itoa y no me sirve, no me referia a que te queden con binarios de ASCII (1010101...), me referia a que los numeros te queden con caracteres binarios, por ejemplo el siguiente simbolo representa 6235512 (aproximadamente ese valor, luego averiguo cuanto exactamente era):

Código:
iÞi

Entonces deberia quedar algo asi:

Código:
XXXXiÞiAAAA