Dudas con C


06 de Febrero del 2016

Resulta que tengo que hacer un programa escrito en C que permita visualizar diferentes líneas de un fichero
supuesto que la longitud de las líneas de ese fichero sea de 64 caracteres.

Le he estado dando muchisimas vueltas pero no hubo forma alguna y estoy atascada.

¿Me podéis ayudar?

Gracias y un saludo.


Gaspar Fernández
10 de Febrero del 2016

Para manejar ficheros en C tenemos las funciones:

fopen() para abrir, fclose() para cerrar, feof() para detectar el final de fichero, y por ejemplo fgets() para leer líneas de ficheros de texto.

Por ejemplo, un código que puedes utilizar es este:

#include <stdlib.h>
#include <stdio.h>

/* El máximo de la línea son 64 caracteres, pero necesitamos añadir
un terminador. */
#define MAX_LINEA 65

int main(int argc, char *argv[])
{
FILE* f;
int linea=1;
char buffer[MAX_LINEA];

/* Abrimos el fichero */
f = fopen("testf.c", "r");
if (!f)
{
printf ("Error al abrir archivon");
exit(1);
}

/* Leemos la primera línea del fichero: prelectura */
fgets(buffer, MAX_LINEA, f);
while (!feof(f)) /* Comprobamos si hemos llegado al final */
{
/* Ponemos en pantalla el número de línea y la línea leída */
printf ("Linea %d: %s", linea, buffer);
linea++;
/* Leemos la siguiente línea del fichero */
fgets(buffer, MAX_LINEA, f);
}
fclose(f); /* Cerramos el fichero */

return 0;
}

 

(Perdona el anidado, pero el copypaste no funciona bien aquí). Piedes verlo aquí: http://pastebin.com/e9JqV5AX

En este caso abrimos el fichero como lectura ("r"), puedes cambiar el nombre de fichero, y luego vamos leyendo líneas hasta el final del archivo. Eso sí, como nuestra longitud de línea es de 64 caracteres, tenemos que reservar un buffer de 65bytes, ya que en cada línea necesitamos incluir el carácter terminador.

 

Espero haberte ayudado.