Foro de elhacker.net

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



Título: Guardar salto de linea completo en C en un archivo
Publicado por: Xedrox en 27 Diciembre 2012, 01:23 am
Buenas gente, estoy tratando de guardar un salto de linea en un archivo con C, pero no puedo. Solo me queda el line feed (LF) y necesito el CR (carrier return) y el LF para que quede el salto completo. Este es el programa que estoy usando.

Código:
#include <stdio.h>

 
struct transaccion
{
       long long importe;
} trx;
 
void myfwrite(char * buffer, size_t bytes, FILE *fp)
{
    while(bytes)
        fputc(buffer[--bytes],fp);
}
 
int main()
{
    char campo1[5]="AAAA";
    char campo2[5]="XXXX";
    char salto='\n';
    trx.importe = 6938217;
   
    FILE *fp = fopen("Base.txt","ab");
   
    fprintf(fp,"%s",campo1);
    myfwrite((char*)&trx,sizeof(trx),fp);
    fprintf(fp,"%s",campo2);
   
    fputs(&salto,fp);
   
    fclose(fp);
    return 0;
}

Y el resultado que obtengo en el archivo (visto con el Notepad++):

Código:
AAAA[NUL][NUL][NUL][NUL][NUL]iŽiXXXX[LF]
XXXX

Necesito que quede asi:

Código:
AAAA[NUL][NUL][NUL][NUL][NUL]iŽiXXXX[CR][LF]

Muchas Gracias!

P.D. Alguien sabe porque me esta duplicando las "XXXX"? Solo estoy guardando una vez ese valor..


Título: Re: Guardar salto de linea completo en C en un archivo
Publicado por: rir3760 en 27 Diciembre 2012, 01:59 am
Alguien sabe porque me esta duplicando las "XXXX"? Solo estoy guardando una vez ese valor..
Porque fputs espera una cadena y tu le pasas la direccion de un caracter.

Un saludo


Título: Re: Guardar salto de linea completo en C en un archivo
Publicado por: naderST en 27 Diciembre 2012, 02:17 am
Usa fputc