Foros del Web » Programación para mayores de 30 ;) » C/C++ »

leer linea a linea de archivo .txt [programa C]

Estas en el tema de leer linea a linea de archivo .txt [programa C] en el foro de C/C++ en Foros del Web. Estoy haciendo una función en C que carga los datos de un archivo .txt. El archivo sólo tiene en cada línea el nombre de cada ...
  #1 (permalink)  
Antiguo 19/04/2009, 02:19
 
Fecha de Ingreso: febrero-2008
Mensajes: 75
Antigüedad: 16 años, 2 meses
Puntos: 0
leer linea a linea de archivo .txt [programa C]

Estoy haciendo una función en C que carga los datos de un archivo .txt.
El archivo sólo tiene en cada línea el nombre de cada empleado

Cita:
for (indice_1 = 0; indice_1 < num_max_departamentos; indice_1++)
{
for (indice_2 = 0; indice_2 < num_max_empleados; indice_2++)
fscanf ( "%[^\n]", departamento[indice_1].empleado[indice_2]nombre);
}
Pero el problema que tengo es que no sé cómo hacer para que no lea sólo la primera línea.

Según he mirado, las funciones de lectura de archivos son:
Cita:
fgetc
fgets
fread
fscanf
Me he mirado el libro de "programación en C" de Schaum pero no he encontrado nada que me pudiera servir. ¿Alguna sugerencia?
  #2 (permalink)  
Antiguo 19/04/2009, 07:10
Avatar de Claw  
Fecha de Ingreso: abril-2009
Mensajes: 299
Antigüedad: 15 años
Puntos: 9
Respuesta: leer linea a linea de archivo .txt [programa C]

Código:
while(fgets(buffer,fichero) != EOF){
//...
}
Leer mientras no encuentres fin de fichero (EOF). Busca más info porque no se si es exactament e así.

Salu2
  #3 (permalink)  
Antiguo 19/04/2009, 18:52
Avatar de DarKayserLeo  
Fecha de Ingreso: abril-2009
Mensajes: 5
Antigüedad: 15 años
Puntos: 0
Respuesta: leer linea a linea de archivo .txt [programa C]

Bueno lo que yo haría en C++ es lo siguiente

#include <cstdlib>
#include <iostream>
#include <fstream>

using namespace std;

int main(int argc, char *argv[])
{
ifstream ar("Archivo.txt"); (*)
char linea [50];
while(!ar.eof()){
ar.getline(linea,50);
cout<<linea<<endl;
}
system("PAUSE");
return EXIT_SUCCESS;
}

Se incluye la libreria fstream para poder trabajar con archivos de entrada y salida
(*)ifstream en este caso para leer, para salida es ofstream
Al poner while(!ar.eof()) le indicas que continue leyendo hasta que sea fin de archivo
Supongo que en C debe ser algo parecido, espero te sirva :D

PD:Hecho en Devc++
  #4 (permalink)  
Antiguo 20/04/2009, 01:00
 
Fecha de Ingreso: febrero-2008
Mensajes: 75
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: leer linea a linea de archivo .txt [programa C]

La solución consiste en poner: "\n" en el scanf para producir el salto de línea, por lo que quedaría:

Cita:
fscanf ( "%[^\n] \n", departamento[indice_1].empleado[indice_2]nombre);
La opción que puso DarKayserLeo sirve si quieres ir carácter a carácter.

Muchas gracias por las respuestas :)
  #5 (permalink)  
Antiguo 09/02/2010, 11:33
 
Fecha de Ingreso: agosto-2009
Ubicación: Peru
Mensajes: 10
Antigüedad: 14 años, 8 meses
Puntos: 1
Respuesta: leer linea a linea de archivo .txt [programa C]

Gracias DarKayserLeo por el codigo, ahora mi archivo puede leer el archivo TXT, pero otra consulta, como puedo escribirlo en otro txt???
  #6 (permalink)  
Antiguo 15/09/2014, 00:06
 
Fecha de Ingreso: septiembre-2014
Mensajes: 1
Antigüedad: 9 años, 7 meses
Puntos: 0
Respuesta: leer linea a linea de archivo .txt [programa C]

Cita:
Iniciado por larios_tnt Ver Mensaje
La solución consiste en poner: "\n" en el scanf para producir el salto de línea, por lo que quedaría:



La opción que puso DarKayserLeo sirve si quieres ir carácter a carácter.

Muchas gracias por las respuestas :)

Gracias por el comentario 'larios_tnt', me ayudo mucho.
Saludos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:37.