C/Visual C - fopen varios archivos

 
Vista:

fopen varios archivos

Publicado por ruben (1 intervención) el 07/04/2010 13:16:24
Hola.

Soy nuevo por aquí en cuánto a pedir ayuda pero sin embargo muchos ejemplos y respuestas me han solucionado otras muchas dudas que he tenido.

Comento mi problema. Tengo el siguiente código con el que abro un archivo de texto cualquiera y me lo lee y dice el número de caracteres y otras características que tiene. Pero lo que quiero hacer y no consigo es abrir varios archivos que se llamen igual pero poniéndole una numeración, es decir, en este caso mi archivo se llama prueba.htm, y lo que quiero es que me lea 10 archivos distintos y que me guarde las características de cada uno de ellos (prueba1.htm, prueba2.htm, ...). Lo he probado con un bucle for pero me da problemas. ¿Me podríais dar algún consejo?

Muchas gracias.

Un saludo


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

int separador (int x)
{
return (x==' ') || (x=='\t') || (x=='\n');
}

int main ()
{
long contador_caracteres;
long contador_palabras;
long contador_lineas;
long contador_espacios;
long contador_total;
long contador_comas;
long contador_puntos;
long contador_vocales;
long contador_consonantes;
long contador_otros;
FILE *nombre;
int c;
int actual;
int prev;

// Inicialización de los contadores

contador_total = -2;
contador_espacios = 0;
contador_caracteres = 0;
contador_comas = 0;
contador_puntos = 0;
contador_vocales = 0;
contador_consonantes = 0;
contador_palabras = -1;
contador_lineas = 0;
contador_otros = 0;

// Lectura de los datos de entrada

nombre = fopen("prueba.htm", "r");
prev = ' ';

if (nombre == NULL)

{
printf("El archivo no existe \n");
exit (EXIT_FAILURE);
}

else

{

while (c != EOF)

{
c = getc(nombre); /* Obtiene un caracter del archivo */
putchar(c); /* Lo despliega en pantalla y continua... */

contador_total++;

// Espacios en blanco

if (c==' ')
contador_espacios++;

// Comas

if (c==',')
contador_comas++;

// Puntos

if (c=='.')
contador_puntos++;

// ¿Fin de línea?

if (c=='\n')
contador_lineas++;

// Vocales

if (c=='a' || c=='A' || c=='á' || c=='e' || c=='E' || c=='é'|| c=='i' || c=='I' || c=='í' || c=='o' || c=='O' || c=='ó'|| c=='u' || c=='U' || c=='ú')
contador_vocales++;

// Consonantes

if (c=='b' || c=='B' || c=='c' || c=='C' || c=='d' || c=='D' || c=='f' || c=='F' || c=='g' || c=='G' || c=='h' || c=='H' || c=='j' || c=='J' || c=='k' || c=='K' || c=='l' || c=='L' || c=='m' || c=='M' || c=='n' || c=='N' || c=='p' || c=='P' || c=='q' || c=='Q' || c=='r' || c=='R' || c=='s' || c=='S' || c=='t' || c=='T' || c=='v' || c=='V' || c=='w' || c=='W' || c=='x' || c=='X' || c=='y' || c=='Y' || c=='z' || c=='Z')
contador_consonantes++;

// ¿Comienzo de una nueva palabra?

if (!separador(c) && separador(prev))
contador_palabras++;

// Siguiente carácter

prev = c;

}


fclose(nombre);

contador_caracteres=contador_total-contador_espacios;
contador_otros=contador_caracteres-contador_vocales-contador_consonantes-contador_comas-contador_puntos;

// Resultado

printf("\n%ld caracteres totales\n\n", contador_total);
printf("%ld caracteres sin espacios\n", contador_caracteres);
printf("%ld espacios en blanco\n\n", contador_espacios);
printf("%ld comas\n", contador_comas);
printf("%ld puntos\n", contador_puntos);
printf("%ld vocales\n", contador_vocales);
printf("%ld consonantes\n", contador_consonantes);
printf("%ld otros caracteres\n\n", contador_otros);
printf("%ld palabras\n", contador_palabras);
printf("%ld líneas\n", contador_lineas);


return 0;

}
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

fopen varios archivos

Publicado por zurdo21 (1 intervención) el 24/04/2012 07:03:01
hola soy nuevo en estos temas y estoy con un proyecto parecido a este pero leí que presenta algun problema por ahi, pudiste solucionarlo...? si fuera asi me ayudarias con el...
mi correo es [email protected]
gracias-.......
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar