Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: emarp10 en 10 Junio 2016, 19:16 pm



Título: Error en el codigo de mi programa C++
Publicado por: emarp10 en 10 Junio 2016, 19:16 pm
Hola buen dia, les dejo el codigo de mi programa.
Quisiera saber porque en la linea 55 me tira este error en la linea 55:
Citar
55 C:\Users\Usuario\Desktop\EJERCICIO\adasdasdasd.cpp cannot convert `FILE*' to `const char*' for argument `1' to `FILE* fopen(const char*, const char*)'  
.
Uso dev c++ como compilador.

Les dejo el programa entero.

Código
  1. #include <stdio.h>
  2. #include <conio.h>
  3. FILE *doc;
  4. main()
  5. {
  6.      int opcion, num1, num2, suma, n, cont=0, acum=0, cont2=0, prom, porc;
  7.      printf ("1- Datos personales\n");
  8.      printf ("2\n");
  9.      printf ("3\n");
  10.      printf ("4\n");
  11.      printf ("5\n");
  12.      printf ("Ingrese una opcion: ");
  13.      scanf ("%i", &opcion);
  14.      switch (opcion) {
  15.             case 1:
  16.                  printf ("Emanuel");
  17.                  break;
  18.             case 2:
  19.                  printf ("Ingrese el primer numero: ");
  20.                  scanf ("%i", &num1);
  21.                  printf ("Ingrese el segundo numero: ");
  22.                  scanf ("%i", &num2);
  23.                  suma=num1+num2;
  24.                  printf ("La suma es: %i", suma);
  25.                  break;
  26.             case 3:
  27.                  printf ("Ingrese el primer numero: ");
  28.                  scanf ("%i", &num1);
  29.                  printf ("Ingrese el segundo numero: ");
  30.                  scanf ("%i", &num2);
  31.                  if (num1>num2)
  32.                  printf ("El mayor es: %i", num1);
  33.                  else
  34.                  printf ("El mayor es: %i", num2);
  35.                  break;
  36.             case 4:
  37.                  for (n=1;n<=100;n++)
  38.                  printf ("%i", n++);
  39.                  break;
  40.             case 5:
  41.                  while (n!=0) {
  42.                        printf ("Ingrese un numero: ");
  43.                        scanf ("%i", &n);
  44.                        cont++;
  45.                        acum=acum+n;
  46.                        if (n>=18)
  47.                        cont2++;
  48.                        }
  49.                        }
  50.                        printf ("La cantidad de edades ingresadas es: %i", cont);
  51.                        prom=acum/cont;
  52.                        printf ("El promedio es : %i", prom);
  53.                        porc=(acum*cont2)/100;
  54.                        printf ("El porcentaje de mayores de edad es: %i", porc);
  55.                        doc=fopen (doc, "Edades.txt", "w");        <-- esta linea me da el error
  56.                        fprintf (doc, "La cantidad de edades ingresadas fueron: %i", cont);
  57.                        fprintf (doc, "El promedio de las edades fue: %i", prom);
  58.                        fprintf (doc, "El porcentaje de mayores de edad es: %i", porc);
  59.                        getch();
  60.                        }

He intentado cambiando de directorio el programa , poner el archivo texto en minuscula y nada.
Gracias.


Título: Re: Error en el codigo de mi programa C++
Publicado por: engel lex en 10 Junio 2016, 19:21 pm
fopen toma 2 argumentos, el primero es la ruta del archivo y el segundo es una combinacion de letras (a, r, w, b ,+) depende del modo de acceso que quieras hacer...

el error dice

Citar
cannot convert `FILE*' to `const char*' for argument `1' to `FILE* fopen(const char*, const char*)'  

Citar
no se puede convertir `FILE*' a `const char*' para argumento `1' a `FILE* fopen(const char*, const char*)'  

es decir, estás pasando una variable tipo FILE* (variable de acceso a archivo) cuando el necesita un char* (cadena de texto), es importante leer e interpretar los errores

recomiendo leer
http://c.conclase.net/librerias/?ansifun=fopen (http://c.conclase.net/librerias/?ansifun=fopen)
https://es.wikibooks.org/wiki/Programaci%C3%B3n_en_C/Manejo_de_archivos (https://es.wikibooks.org/wiki/Programaci%C3%B3n_en_C/Manejo_de_archivos)


Título: Re: Error en el codigo de mi programa C++
Publicado por: emarp10 en 10 Junio 2016, 19:52 pm
Muchas gracias! Ya lo arreglue.