elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Consigna con EOF > No se aplicarlo .
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Consigna con EOF > No se aplicarlo .  (Leído 3,814 veces)
axeelcs

Desconectado Desconectado

Mensajes: 54


Ver Perfil
Consigna con EOF > No se aplicarlo .
« en: 13 Agosto 2011, 13:58 pm »

Buenos días, estoy teniendo un problema, porque la profesora nos dió una consigna para que usemos la instrucción EOF, pero no enseño como usarla, y en internet lo único que encuentro es aplicaciones a archivos, por su significado End of File .
La consigna es así:
Citar
Leer un texto carácter por carácter terminando en EOF. Mostrar el texto con solo
la primer y última letra de cada palabra.
Hay más consignas, pero mi problema es que no se como funciona el EOF, y solo podemos usar : getchar y putchar, declarando como int a las variables.
Y claro whiles,for lo que queramos,pero solo con get y put .
Desde ya , muchas gracias ! .


En línea

Gallu

Desconectado Desconectado

Mensajes: 247



Ver Perfil
Re: Consigna con EOF > No se aplicarlo .
« Respuesta #1 en: 14 Agosto 2011, 00:41 am »

No será que lo que quiere es que leas el fichero hasta que encuentres el EOF o final del mismo ?
Por si te sirve
http://c.conclase.net/librerias/?ansimac=EOF
Saludos


En línea

Nadie alcanza la meta con un solo intento, ni perfecciona la vida con una sola rectificación, ni alcanza altura con un solo vuelo.
PiroskY

Desconectado Desconectado

Mensajes: 76


пирожки


Ver Perfil
Re: Consigna con EOF > No se aplicarlo .
« Respuesta #2 en: 14 Agosto 2011, 18:22 pm »

Mostrar el texto con solo la primer y última letra de cada palabra.

WTF!


Mira el uso mas común del EOF es algo mas o menos así

while(!eof)
    fread()

obvio que tiene mas usos, pero eso seria lo mas común.


Creo que lo que quiere tu profesora es algo mas o menos así:

Código
  1. cout << texto[0];
  2.  
  3. for(int x=1 ; texto[x] ; x++)
  4.    if(texto[x] == ' ')
  5.        cout << texto[x-1] << " " << texto[x+1];

Este código no funciona muy bien, pero es para darte una idea.

PD: Podrías explicar mejor el problema?
En línea

axeelcs

Desconectado Desconectado

Mensajes: 54


Ver Perfil
Re: Consigna con EOF > No se aplicarlo .
« Respuesta #3 en: 14 Agosto 2011, 19:03 pm »

Es en c el programa .
Osea el ejemplo sería así:

Citar
Ejemplo:   Hoy hay parcial de estructuras
                          Hy hy pl de es
En línea

Dark Invader

Desconectado Desconectado

Mensajes: 111


Lucha hasta el final para conseguir tu objetivo.


Ver Perfil
Re: Consigna con EOF > No se aplicarlo .
« Respuesta #4 en: 14 Agosto 2011, 20:29 pm »

¿Has intentado hacer el ejercicio?¿Tienes algun code? :silbar: Intenta hacer algo asi,y si no te sale,te pego el codigo que acabo de hacer,ya que por lo menos lo has intentado...

Un saludo
En línea

Darkgold9

Desconectado Desconectado

Mensajes: 62



Ver Perfil
Re: Consigna con EOF > No se aplicarlo .
« Respuesta #5 en: 14 Agosto 2011, 21:05 pm »

Como te dicen por arriba, tu profesora se debe referir a que leas de un archivo (vease un .txt x ejem) un texto, vayas haciendo la operacion que te dice con las palabras que encuentres y veas si se ha terminado el archivo con la funcion EOF.

La idea seria algo como:
        -Abrir el archivo modo lectura.
Código:
FILE *f;
f=fopen(nombrefich,"r");
        -Hacer la funcion que te pide.
        -Comprobar si se ha terminado con EOF:
Código:
while( !feof(f) )
    fread() ó fscanf(...)
     ....
    fclose(f);


     
En línea

axeelcs

Desconectado Desconectado

Mensajes: 54


Ver Perfil
Re: Consigna con EOF > No se aplicarlo .
« Respuesta #6 en: 14 Agosto 2011, 22:35 pm »

Si, lo hice sin usar el EOF; porque no lo entiendo .
Acá esta el code :
Código:
 int c,aux;

    printf("Ingrese frase :");
    c=getchar();
    putchar(c);

    while(c!='.')
    {
        if(c==' ')
        {
            putchar(aux);
            c=getchar();
            putchar(' ');
            putchar(c);
        }

        aux=c;
        c=getchar();

    }

    putchar(aux);


Pasa que no tengo que abrir ningún archivo, es ingresar una frase.
En línea

Dark Invader

Desconectado Desconectado

Mensajes: 111


Lucha hasta el final para conseguir tu objetivo.


Ver Perfil
Re: Consigna con EOF > No se aplicarlo .
« Respuesta #7 en: 15 Agosto 2011, 00:06 am »

Bueno no se si al final es escribir o leer en el archivo  :xD Te he construido un code de unos minutos,funciona bien,pero se puede hacer de otras maneras:

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. void mostrar(){
  5. FILE *fichero;
  6. char *palabra;
  7. do{
  8. char *p[10];
  9. palabra = (char *) malloc (20 * sizeof(char));
  10. int j;
  11. fichero = fopen("leer.txt","r");
  12. fscanf(fichero,"%s",palabra);
  13. setbuf(stdin,NULL);
  14. j = sizeof(palabra);
  15. p[0] = palabra;
  16. printf ("%c",*p[0]);
  17. p[1] = &palabra[j];
  18. printf("%c",*p[1]);
  19. fseek(fichero,1,SEEK_CUR);
  20. if (feof(fichero)){
  21. break;
  22. }
  23. fscanf(fichero,"%s",palabra);
  24. setbuf(stdin,NULL);
  25. j = sizeof(palabra);
  26. p[2]= palabra;
  27. printf(" ");
  28. printf ("%c",*p[2]);
  29. p[3] = &palabra[j];
  30. printf("%c",*p[3]);
  31. fseek(fichero,1,SEEK_CUR);
  32. if (feof(fichero)){
  33. break;
  34. }
  35. //esa es la idea principal,continua desde aqui
  36. //tambien podrias definir una variable llamada x con un valor 0,hacer un do-while e ir aumentando el numero del punteroasi p[++x]
  37. //pasaria de p[0] a p[1].
  38. }while(1);
  39. fclose(fichero);
  40. }
  41.  
  42. int main(){
  43. mostrar();
  44. return 0;
  45. }
   
el do-while lo he puesto para poder usar la funcion break y salir del bucle,pero con el do-while se puede hacer todo eso,te lo deje en los comentarios del programa.

fichero leer.txt --> vamos todos
resultado en la consola: vs ts

otro ejemplo,aunque da un error,yo lo he visto por encima y no lo he visto,tendras que pillarlo:

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. void mostrar(){
  5. FILE *fichero;
  6. char *palabra;
  7. char *p[10];
  8. int x =0;
  9. palabra = (char *) malloc (20 * sizeof(char));
  10. int j;
  11. fichero = fopen("leer.txt","r");
  12.  
  13. while (!feof(fichero)){
  14. fscanf(fichero,"%s",palabra);
  15. j = sizeof(palabra);
  16. x++;
  17. p[x] = palabra;
  18. printf ("%c",*p[x]);
  19. x++;
  20. p[x] = &palabra[j];
  21. printf("%c",*p[x]);
  22. printf("  ");
  23. fseek(fichero,1,SEEK_CUR);
  24. fflush(fichero);
  25. if (feof(fichero)){
  26. break;
  27. }
  28. }
  29.  
  30. free(palabra);
  31. fclose(fichero);
  32. }
  33.  
  34. int main(){
  35. mostrar();
  36. return 0;
  37. }
   


Un saludo
« Última modificación: 16 Agosto 2011, 13:16 pm por Dark Invader » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Hacer un programa que anule internet y luego pueda aplicarlo a otros ordenadores
Programación Visual Basic
nyigu 3 2,605 Último mensaje 9 Octubre 2006, 12:36 pm
por nyigu
[TIP] Boost de velocidad en linux (sched_autogrup) y como aplicarlo sin parchear
GNU/Linux
j4np0l 6 4,645 Último mensaje 24 Noviembre 2010, 04:28 am
por celtac
ayuda para aplicarlo a capas enteras no solo al texto
Desarrollo Web
javierr 1 3,242 Último mensaje 24 Noviembre 2010, 18:37 pm
por javierr
Duda consigna
Java
axeelcs 6 2,819 Último mensaje 7 Julio 2012, 14:15 pm
por axeelcs
Ayuda para interpretar esta consigna .
Programación C/C++
Blazjker 5 2,170 Último mensaje 5 Marzo 2019, 23:30 pm
por K-YreX
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines