Test Foro de elhacker.net SMF 2.1

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:
Citar55 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.

#include <stdio.h>
#include <conio.h>
FILE *doc;
main()
{
     int opcion, num1, num2, suma, n, cont=0, acum=0, cont2=0, prom, porc;
     printf ("1- Datos personales\n");
     printf ("2\n");
     printf ("3\n");
     printf ("4\n");
     printf ("5\n");
     printf ("Ingrese una opcion: ");
     scanf ("%i", &opcion);
     switch (opcion) {
            case 1:
                 printf ("Emanuel");
                 break;
            case 2:
                 printf ("Ingrese el primer numero: ");
                 scanf ("%i", &num1);
                 printf ("Ingrese el segundo numero: ");
                 scanf ("%i", &num2);
                 suma=num1+num2;
                 printf ("La suma es: %i", suma);
                 break;
            case 3:
                 printf ("Ingrese el primer numero: ");
                 scanf ("%i", &num1);
                 printf ("Ingrese el segundo numero: ");
                 scanf ("%i", &num2);
                 if (num1>num2)
                 printf ("El mayor es: %i", num1);
                 else
                 printf ("El mayor es: %i", num2);
                 break;
            case 4:
                 for (n=1;n<=100;n++)
                 printf ("%i", n++);
                 break;
            case 5:
                 while (n!=0) {
                       printf ("Ingrese un numero: ");
                       scanf ("%i", &n);
                       cont++;
                       acum=acum+n;
                       if (n>=18)
                       cont2++;
                       }
                       }
                       printf ("La cantidad de edades ingresadas es: %i", cont);
                       prom=acum/cont;
                       printf ("El promedio es : %i", prom);
                       porc=(acum*cont2)/100;
                       printf ("El porcentaje de mayores de edad es: %i", porc);
                       doc=fopen (doc, "Edades.txt", "w");        <-- esta linea me da el error
                       fprintf (doc, "La cantidad de edades ingresadas fueron: %i", cont);
                       fprintf (doc, "El promedio de las edades fue: %i", prom);
                       fprintf (doc, "El porcentaje de mayores de edad es: %i", porc);
                       getch();
                       }


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

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

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