Guardar salto de linea completo en C en un archivo

Iniciado por Xedrox, 27 Diciembre 2012, 01:23 AM

0 Miembros y 1 Visitante están viendo este tema.

Xedrox

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.


#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++):


AAAA[NUL][NUL][NUL][NUL][NUL]iÞiXXXX[LF]
XXXX


Necesito que quede asi:


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..

rir3760

Cita de: Xedrox en 27 Diciembre 2012, 01:23 AMAlguien 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
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language

naderST