Manejo de archivos en windows con c

Mi problema es que estoy haciendo un programa en turbo c que lee un archivo binario, procesa los datos y después los escribe a un archiv ode texto con extensión .csv para ser leído por Excel. En msdos corre perfectamente excepto por el hecho de que la memoria que pido es muy limitada y requiero más que lo que se puede dar en msdos. Por eso decidí transportar el código a windows con Borland C++ 5, pero se comporta extraño por que ahora escribe pura basura en el archivo csv y no sé por qué. La instrucción que uso para abrir el archivo es:
fptr2 = fopen("prueba.csv","wt");
Y para escribir utilizo fprintf.
¿Tienes alguna idea de por qué pueda estar sucediendo esto?

1 respuesta

Respuesta
1
Tengo la sospecha de que se trata del código ASCII y ANSI windows, resulta que el DOS usa ASCII y windows ANSI que son muy parecidos pero no iguales, por lo que salen caracteres extraños, entonces antes de grabar debes convertirla a ascii con la función CharToOem, la forma sería más o menos así:
char *Ansi, *Ascii;
sprintf(Ansi, "Cadena que quiero grabar\n");
CharToOem(Ansi, Ascii);
fprintf(fp, Ascii);

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas