Error en el codigo de mi programa C++

Iniciado por emarp10, 10 Junio 2016, 19:16 PM

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

emarp10

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.

engel lex

#1
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
https://es.wikibooks.org/wiki/Programaci%C3%B3n_en_C/Manejo_de_archivos
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

emarp10