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

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ayuda programa con ficheros
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda programa con ficheros  (Leído 5,753 veces)
Stakewinner00


Desconectado Desconectado

Mensajes: 1.426



Ver Perfil WWW
Re: Ayuda programa con ficheros
« Respuesta #10 en: 20 Septiembre 2012, 17:39 pm »

sorry no se arreglo fue un error mio xD sorry

como minimo compila no? por k a mi si, lo otro sino te sale te intentaremos ayudar


En línea

ankora45

Desconectado Desconectado

Mensajes: 52



Ver Perfil
Re: Ayuda programa con ficheros
« Respuesta #11 en: 20 Septiembre 2012, 17:43 pm »

no no me compila bien me da 2 errores y 2 advertencias:
3 error iostream: no such file or directory
33 error: expected expresion ':' token
33 varing: label 'std' defined but not used
12 varing: unused variable let1


En línea

Hay dos cosas infinitas en este mundo, el universo y la estupidez humana, y de la primera no estoy muy seguro
0xDani


Desconectado Desconectado

Mensajes: 1.077



Ver Perfil
Re: Ayuda programa con ficheros
« Respuesta #12 en: 20 Septiembre 2012, 17:43 pm »

@ankora45, si lo compilas con un compilador de C dificilmente te va a dar por bueno el std::cin. Haz una prueba, declara letra como char letra[1].

EDITO: Para obtener un caracter, sin declararlo como array, esta getchar().
« Última modificación: 20 Septiembre 2012, 17:46 pm por 0xDani » En línea

I keep searching for something that I never seem to find, but maybe I won't, because I left it all behind!

I code for $$$
Hago trabajos en C/C++
Contactar por PM
ankora45

Desconectado Desconectado

Mensajes: 52



Ver Perfil
Re: Ayuda programa con ficheros
« Respuesta #13 en: 20 Septiembre 2012, 17:58 pm »

Gracias ya solo me tira una advertenci pero el compilador la ignora se puede compilar y funciona correctamente gracias +1 a los dos posteo codigo arreglado;
Código:

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



int main()
{
    FILE *fichero;
    char nombre_fichero[256];
    char caracter;
    char letra[1];

    printf ("\nescriba el nombre de un fichero para visualizar:");
    gets (nombre_fichero);
    fichero = fopen (nombre_fichero, "r+");

    if (fichero == NULL)
    {
        printf("no se ha encontrado el fichero");
    }
    else
    {
      caracter = fgetc (fichero);
      while (feof (fichero) ==0)
      {
          printf ("%c", caracter);
          caracter = fgetc (fichero);
      }
      fclose (fichero);
    }

    printf ("\nQuiere visualizar otro fichero (S/N)");
    gets (letra);

    if ((letra == 's') || (letra == 'S'))
    {
        main()

    }

    else
    {
       fflush (stdin);
       printf ("\n\nPulse intro para finalizar...");
       getchar();
       return 0;
    }
}
[code]
[/code]
En línea

Hay dos cosas infinitas en este mundo, el universo y la estupidez humana, y de la primera no estoy muy seguro
Stakewinner00


Desconectado Desconectado

Mensajes: 1.426



Ver Perfil WWW
Re: Ayuda programa con ficheros
« Respuesta #14 en: 20 Septiembre 2012, 18:09 pm »

pero cuando use tu programa hacia bucles raros

para compilar con mi metodo tienes que guardarlo como c++ y compilarlo con g++

lo que encuentro raro es k con c++ se peuda suar c y con c no se pueda usar c++
« Última modificación: 20 Septiembre 2012, 18:11 pm por Stakewinner00 » En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: Ayuda programa con ficheros
« Respuesta #15 en: 21 Septiembre 2012, 17:30 pm »

ya solo me tira una advertenci pero el compilador la ignora se puede compilar y funciona correctamente gracias +1 a los dos posteo codigo arreglado
Tu programa tiene varias deficiencias como el uso de "gets" y "fflush(stdin)", por favor lee el tema |Lo que no hay que hacer en C/C++. Nivel basico|.

El error principal continua, al llamar a la función "gets" utilizas:
Código
  1. char letra[1];
  2.  
  3. /* ... */
  4.  
  5. gets (letra);
  6.  
  7. /* ... */
  8.  
  9. if ((letra == 's') || (letra == 'S'))
Ello no es correcto por dos razones: solo se puede almacenar un carácter en el array "letra" (ahí el programa puede reventar) y cuando realizas la comparación no tratas con un carácter sino con una dirección de memoria (donde se almacena el array).

Para que funcione correctamente debería ser mas o menos así:
Código
  1. char letra[2];
  2.  
  3. /* ... */
  4.  
  5. gets (letra);
  6.  
  7. /* ... */
  8.  
  9. if ((letra[0] == 's') || (letra[0] == 'S'))
Pero debido al uso de "gets" sigue la posibilidad de que el programa reviente (mejor usar "fgets", ello se indica en el tema que mencione).

Un saludo
En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
diegoCmC

Desconectado Desconectado

Mensajes: 177



Ver Perfil
Re: Ayuda programa con ficheros
« Respuesta #16 en: 22 Septiembre 2012, 14:42 pm »

Aqui te pongo el codigo, y te pongo los errores.
despues del main() te faltaba un punto y coma
Intentas captar un caracter y usas gets() gets es solo para cadenas, para un solo caracter tienes que usar getchar()
Un salduo

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main()
  5. {
  6.    FILE *fichero;
  7.    char nombre_fichero[256];
  8.    char caracter;
  9.    char letra;
  10.  
  11.    printf ("\nescriba el nombre de un fichero para visualizar:");
  12.    gets (nombre_fichero);
  13.    fichero = fopen (nombre_fichero, "r+");
  14.  
  15.    if (fichero == NULL)
  16.    {
  17.        printf("no se ha encontrado el fichero");
  18.    }
  19.    else
  20.    {
  21.      caracter = fgetc (fichero);
  22.      while (feof (fichero) ==0)
  23.      {
  24.          printf ("%c", caracter);
  25.          caracter = fgetc (fichero);
  26.      }
  27.      fclose (fichero);
  28.    }
  29.  
  30.    printf ("\nQuiere visualizar otro fichero (S/N)");
  31.    letra=getchar();
  32.    getchar();//Para que no se acumule en el buffer el intro pulsado
  33.  
  34.    if ((letra == 's') || (letra == 'S'))
  35.    {
  36.        main();
  37.    }
  38.    else
  39.    {
  40.       fflush (stdin);
  41.       printf ("\n\nPulse intro para finalizar...");
  42.       getchar();
  43.       return 0;
  44.    }
  45. }
  46.  
En línea

a todas las que me abrieron su coraza traeles suerte
ya no creo en el amor pero querria volver a verte
Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Programa para editar ficheros exe « 1 2 »
Ingeniería Inversa
consejo 11 27,946 Último mensaje 11 Marzo 2008, 08:20 am
por Shaddy
problema con programa de ficheros en c
Programación C/C++
Quake-man 1 2,365 Último mensaje 10 Septiembre 2010, 18:39 pm
por nicolas_cof
programa con ficheros
Programación C/C++
tumayy 5 3,074 Último mensaje 25 Octubre 2011, 06:22 am
por do-while
Ayuda en programa con ficheros! « 1 2 »
Programación C/C++
Juan821 13 6,464 Último mensaje 2 Julio 2014, 01:22 am
por Eternal Idol
ayuda con un programa de ficheros
Programación C/C++
aradxc56 1 1,774 Último mensaje 13 Marzo 2019, 16:36 pm
por K-YreX
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines