Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: ginny1685 en 29 Abril 2012, 02:46 am



Título: ayuda con un codigo
Publicado por: ginny1685 en 29 Abril 2012, 02:46 am
hola!

tengo este codigo, que es un programa que lee un archivo encuentra palabras de determinada extension y las imprime en otro archivo, todo lo hace bien, solo que quiero agregarle que tambien ademas de imprimir las palabras en el archivo, las muestre en la pantalla del programa junto con la cantidad de palabras que fueron encontradas, pero no se exactamente en que parte del codigo debo colocar las lineas de éstas instrucciones, trate de hacerlo agreggando la parte final del codigo, pero no me trabaja bien..

a ver si me ayudan ..? :)
gracias...

Código:
#include<stdio.h>
#include<stdlib.h>

int n, numpal, esp;
char blocnew[' '], pal, cant[' '] ;
FILE *original, *copia;

int main(){

printf("\n\n\n" "-----------------------------------------------------------------------------" "\n\n");
printf("\n\n\n" "Buscando palabras en el poema MAESTRO" "\n\n");

original= fopen("maestro.txt","r+");

printf("\n\n\n" "Ingrese la cantidad de caracteres que deben tener las palabras que se buscaran en el poema:" "\n\n");

scanf("%d",&n);

sprintf(blocnew,"%d.txt",n);
copia= fopen(blocnew, "w+");

while((pal=fgetc(original)) != EOF){

if(pal!=' ' && pal!='\0' && pal!='\13' && pal!='\10' && pal!='\n'){
cant[numpal]=pal;
numpal++;

}

if(pal==' ' || pal=='\0' || pal=='\13' || pal=='\10' || pal=='\n'){

if(numpal!=n){
for(esp==0;esp<numpal;esp++){
fputc(' ', copia);

}}
if(numpal==n){
             
for(esp=0;esp<n;esp++){
                       

fputc(cant[esp], copia);


}}

fputc(pal, copia);

numpal=0;

}

}
printf("VER EL ARCHIVO %s\n\n", blocnew);
int contador=0;
char auxiliar[' '];
while(fscanf(copia, "%s", auxiliar) != EOF);
printf("%s", auxiliar);
contador++;
};
printf ("\nNúmero de palabras = %d \n", contador);
fclose(original);
fclose(copia);
}
system("pause");

}



Título: Re: ayuda con un codigo
Publicado por: x64core en 29 Abril 2012, 09:13 am
no sabes adonde colocar las lineas de codigo? :|
declara una variables int antes de iniciar la funcion o una global e utiliza el prefijo de post incremento por cada vez que
encuentre una palabra como dices y luego al final usa una funcion/procedimiento de alguna libreria para que te muestre el
resultado de la variable


Título: Re: ayuda con un codigo
Publicado por: s00rk en 29 Abril 2012, 20:48 pm
En donde pones

Código
  1. for(esp=0;esp<n;esp++)
  2. {    
  3.    fputc(cant[esp], copia);
  4. }

en vez de eso pon

Código
  1. for(esp=0;esp<n;esp++)
  2. {
  3.    fputc(cant[esp], copia);
  4.    printf("%c", cant[esp]);
  5. }
  6. printf("\n");


P.D. deberias acomodar mejor el codigo :/ asi es mucho mas dificil entenderlo y tmb en C no exist switch o que ? o.o te ahorras bastante pero bueno suerte hehe.