La función puts()
agrega una nueva línea a la cadena que se le da para escribir en stdout
; la función fputs()
no hace eso.
Como no nos ha mostrado todo el código, solo podemos formular una hipótesis acerca de lo que ha hecho. Pero:
strcpy(line, "line1");
fputs(line, fOut);
putc('\n', fOut);
strcpy(line, "line2\n");
fputs(line, fOut);
produciría el resultado que necesita, de dos formas ligeramente diferentes que podrían usarse cada uno dos veces para lograr la consistencia (y su código debe ser consistente — licencia 'elegante variación' para su escritura literatura, no para tu programación).
En un comentario, que dicen:
realidad estoy bucle a través de un archivo cifrado de cada línea y luego escribir esa línea en un nuevo archivo.
¡Oh muchacho! ¿Estás en la base 64 codificando los datos encriptados? Si no, entonces:
- Debe incluir
b
en el modo de fopen()
(como en fOut = fopen("fileout.bin", "wb");
) ya que los datos encriptados son datos binarios, no de datos de texto. Esto (el b
) es seguro tanto para Unix como para Windows, pero es crítico en Windows e inmaterial en Unix.
- No debe usar
fputs()
para escribir los datos; habrá cero bytes ('\0'
) entre los valores encriptados y fputs()
se detendrá en el primero de los que encuentre. Probablemente necesite usar fwrite()
en su lugar, diciéndole exactamente cuántos bytes escribir cada vez.
- No debe insertar líneas nuevas en ningún lugar; los datos cifrados pueden contener nuevas líneas, pero deben conservarse y no se pueden agregar elementos extraños.
- Cuando vuelva a leer este archivo, debe abrirlo como un archivo binario
"rb"
y leerlo usando fread()
.
Si codifica en base 64 sus datos encriptados, puede volver a tratar la salida como texto; ese es el punto de la codificación base-64.
Simplemente curioso: ¿cómo estás rellenando 'line' antes de agregar la nueva línea? –
Define "Tengo". ¿Cómo estás analizando el contenido del archivo? –
@torrentialcoding En realidad estoy recorriendo un archivo encriptando cada línea y luego escribiendo esa línea en un nuevo archivo. – Dunc