Ayuda programa con ficheros

Iniciado por ankora45, 20 Septiembre 2012, 16:49 PM

0 Miembros y 1 Visitante están viendo este tema.

ankora45

Hola veran estaba haciendo un programa en c para poder leer ficheros segun su nombre y al compilar el pragrama me tira un error el compilador quein me auda  :P
[code]#include <stdio.h>
#include <stdlib.h>



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

    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]
Hay dos cosas infinitas en este mundo, el universo y la estupidez humana, y de la primera no estoy muy seguro

ankora45

sorry el primer code no va dentro del programa se me quedo ahi ;D
Hay dos cosas infinitas en este mundo, el universo y la estupidez humana, y de la primera no estoy muy seguro

0xDani

Utiliza etiquetas GeShi y pon los errores que te de el compilador, asi sera mucho mas facil ver los fallos y solucionarlos.

Saludos.
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

errores :

in function main
33 varning: passing argument 1 of 'gets' makes pointer from integer vithout a cast
356 note: expected 'char *' but argument is of tyoe 'char'
38 error: expected ';' before '}' token
Hay dos cosas infinitas en este mundo, el universo y la estupidez humana, y de la primera no estoy muy seguro

Stakewinner00

#4
Cita de: ankora45 en 20 Septiembre 2012, 17:14 PM
errores :

in function main
33 varning: passing argument 1 of 'gets' makes pointer from integer vithout a cast
356 note: expected 'char *' but argument is of tyoe 'char'
38 error: expected ';' before '}' token

para el error de la line 38 prueba en añadir ";" al final sin comillas. (ami me funciono)

y para el de la 33 estoy buscando si encuentro algo
EDITO:Para el 33 use una trampilla por que yo se c++ solo
bueno pues la trampa es la siguiente
1-le pones #include <iostream> y modificas el gets (letra);
por lo siguiente

std::cin >> letra;

0xDani

Cita de: Stakewinner00 en 20 Septiembre 2012, 17:24 PM
para el error de la line 38 prueba en añadir ";" al final sin comillas. (ami me funciono)

y para el de la 33 estoy buscando si encuentro algo

Para el de la 33 vease el prototipo de gets(). Espera un puntero a char, y el le pasa un char.

Saludos.
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

Stakewinner00

#6
Cita de: 0xDani en 20 Septiembre 2012, 17:30 PM
Para el de la 33 vease el prototipo de gets(). Espera un puntero a char, y el le pasa un char.

Saludos.
yo lo k hice es incorporar el cin de c++ con el include #include <iostream> y modificar el gets por

std::cin >> letra;

lo he probado y va bien

el codigo sera el siguiente

Código (cpp) [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
#include <iostream>


int main()
{
   FILE *fichero;
   char nombre_fichero[256];
   char caracter;
   char letra;
char *let1;
   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)");
std::cin >> letra;

   if ((letra == 's') || (letra == 'S'))
   {
       main();
   }
   else
   {
      fflush (stdin);
      printf ("\n\nPulse intro para finalizar...");
      getchar();
      return 0;
   }
}



al ejecutarlo encontre un error que supongo que ya lo arreglaras tu mismo sino ya sabes aki te ayudamos

ankora45

#7
no xD sigue sin arreglarse ahora pone
33 varin label 'std' defined but not used
Hay dos cosas infinitas en este mundo, el universo y la estupidez humana, y de la primera no estoy muy seguro

Stakewinner00

Cita de: ankora45 en 20 Septiembre 2012, 17:34 PM
Gracias a los +1 ya lo arregle muchas gracias  :rolleyes:

de nada

normalmente no contesto a users que no tengna mas de 10 mensajes por que bastantes veces me encuentro gente que pide ayuda y ya no se le ve el pelo, como tienes la imagen de linux hice una excepción XD

ankora45

sorry no se arreglo fue un error mio xD sorry
Hay dos cosas infinitas en este mundo, el universo y la estupidez humana, y de la primera no estoy muy seguro