Comunidad PHPeros

Lenguajes => C / C++ => Mensaje iniciado por: Siquillote en 28 de Octubre de 2010, 18:36:56 pm

Título: [C++] No me funcionan...
Publicado por: Siquillote en 28 de Octubre de 2010, 18:36:56 pm

Hola chicos, hace 3 días que no cojo el tema por estudios y tal pero ya puedo volver y bueno, viendo el resultado de nivel de programación de mi calculadora, muchos han sido los que me han recomendado algunas técnicas de mejora pero no me funcionan.

1 - Ya se que para hacer algunas funciones, estás requieren de algunas librerías especiales pero las que uso yo son conio.h, iostream.h y stdio.h
2 - Una vez ya dentro del documento con las 3 librerías declaradas e iniciada la función int main llamo a cout para imprimir algo en pantalla algo como: cout<<"Hola PHPeros!"; pero me salta error al complilarlo
3 - Al igual que cout tambien me ocurre con cin>>variable
4 - Y así con muchas funciones que veo en tutoriales cuyas librerías son las mismas que uso yo...
Título: Re:[C++] No me funcionan...
Publicado por: Farresito en 28 de Octubre de 2010, 18:53:41 pm
Hola chicos, hace 3 días que no cojo el tema por estudios y tal pero ya puedo volver y bueno, viendo el resultado de nivel de programación de mi calculadora, muchos han sido los que me han recomendado algunas técnicas de mejora pero no me funcionan.

1 - Ya se que para hacer algunas funciones, estás requieren de algunas librerías especiales pero las que uso yo son conio.h, iostream.h y stdio.h
2 - Una vez ya dentro del documento con las 3 librerías declaradas e iniciada la función int main llamo a cout para imprimir algo en pantalla algo como: cout<<"Hola PHPeros!"; pero me salta error al complilarlo
3 - Al igual que cout tambien me ocurre con cin>>variable
4 - Y así con muchas funciones que veo en tutoriales cuyas librerías son las mismas que uso yo...
Tu calculadora sigue CodigoLibre :)? Pon los errores que te manda el compilador. Que IDE usas? Si usas el CodeBlocks lo verás abajo de la pantalla, donde pone BUILD MESSAGES.

¡Un abrazo!
Título: Re:[C++] No me funcionan...
Publicado por: Siquillote en 28 de Octubre de 2010, 19:11:18 pm
Tu calculadora sigue CodigoLibre :)? Pon los errores que te manda el compilador. Que IDE usas? Si usas el CodeBlocks lo verás abajo de la pantalla, donde pone BUILD MESSAGES.

¡Un abrazo!

Estoy en ello y si, uso Code::Blocks. Resulta que en un archivo externo a mi calculadora, estoy probando las funciones y tal y he hecho un código para que simplemente imprima Hola ;] y en verdad si se ejcuta pero mas abajo salta un error, aquí os dejo 3 imagenes para que comprobeis las fallas

(http://angelsamuel.com/C++/1615.png)
(http://angelsamuel.com/C++/2752.png)
(http://angelsamuel.com/C++/3623.png)
Título: Re:[C++] No me funcionan...
Publicado por: Farresito en 28 de Octubre de 2010, 19:19:05 pm
Curioso :) Ok. El problema es que debes usar CSTDIO en vez del STDIO.Hy IOSTREAM en vez del mismo con .h.

Un abrazo. Prueba así :)
Título: Re:[C++] No me funcionan...
Publicado por: Siquillote en 28 de Octubre de 2010, 19:22:32 pm

Igual ;(
Título: Re:[C++] No me funcionan...
Publicado por: Farresito en 28 de Octubre de 2010, 19:25:36 pm
Igual ;(
Ah! Creo que te descuidas el USING NAMESPACE STD :)
Título: Re:[C++] No me funcionan...
Publicado por: Siquillote en 28 de Octubre de 2010, 19:28:18 pm
Ah! Creo que te descuidas el USING NAMESPACE STD :)

Eso recuerdo haberlo visto en algun sitio pero no se por que y para que sirve :L. Googlearé un poquito a ver que me encuentro.
Título: Re:[C++] No me funcionan...
Publicado por: Farresito en 28 de Octubre de 2010, 19:35:49 pm
Eso recuerdo haberlo visto en algun sitio pero no se por que y para que sirve :L. Googlearé un poquito a ver que me encuentro.
Ah :) Te funcionó? Si no hubieras hecho el namespace, tu código cout seria asi:
Código: [Seleccionar]
std::cout << "Algo" << std::endl;
Es como un contenedor. No debes preocuparte, si es eso lo que pasa. No es importante al principio. Es como para delimitar ámbitos... pero da igual.

Te servirá mucho más cuando avances, con más lineas de codigo pero no es importante ahora.

Un abrazo
Título: Re:[C++] No me funcionan...
Publicado por: Siquillote en 28 de Octubre de 2010, 19:44:34 pm

Bueno mañana le eho un vistazo por que por cada movimiento que hago, siempre me sale un error aunque uno se tape...
Título: Re:[C++] No me funcionan...
Publicado por: Farresito en 28 de Octubre de 2010, 20:21:46 pm
Bueno mañana le eho un vistazo por que por cada movimiento que hago, siempre me sale un error aunque uno se tape...
Es extraño lo que te pasa... Habría que mirarlo más cuidadosamente. Hasta a mi me impresiona ^^
Título: Re:[C++] No me funcionan...
Publicado por: Siquillote en 28 de Octubre de 2010, 20:31:38 pm

Y a mi me jod... por que no puedo aprender ;(
Título: Re:[C++] No me funcionan...
Publicado por: gink en 28 de Octubre de 2010, 21:05:44 pm
Yo te explique en un post mio sobre std y namespaces, ¿Recuerdas?

No se a que vendra tu error, prueba utilizando "using namespace std;" luego de declarar los archivos que incluyes. ¡Me cuentas!
Título: Re:[C++] No me funcionan...
Publicado por: Farresito en 29 de Octubre de 2010, 07:22:51 am
Yo te explique en un post mio sobre std y namespaces, ¿Recuerdas?

No se a que vendra tu error, prueba utilizando "using namespace std;" luego de declarar los archivos que incluyes. ¡Me cuentas!
Sí, gink, es verdad, pero no creo que sera esto. El namespace lo ha probado ya, y si faltara una libreria directamente saltaría un error no un warning en el cout.

Siqui, probaré preguntando en elhacker.net.

Dame EXACTAMENTE el código que te salta error. Mételo aquí que quizas se me pasa algo por alto. O prueba con algun ejemplo de internet :) A ver si quizas es algo del PC. Porque dice que son las librerias ^^
Título: Re:[C++] No me funcionan...
Publicado por: naveda en 29 de Octubre de 2010, 13:50:09 pm
Siquillote, has probado ya lo que te han dicho del namespace std?

Si no indicas que se use el namespace tendrás que especificarlo al usar cout:

Código: [Seleccionar]
std::cout << "Texto";
Título: Re:[C++] No me funcionan...
Publicado por: Siquillote en 29 de Octubre de 2010, 13:53:52 pm

Naveda, ya lo he probado al no poner lo de namespace y tal antes. El resultado es que me muestra el "Texto, hola mundo" en pantalla pero debajo de este pone un código de error como el que pone arriba en la imagen ;[
Título: Re:[C++] No me funcionan...
Publicado por: gink en 29 de Octubre de 2010, 16:03:21 pm
Haz que se pause el sistema y me dices :P
al final pon (antes de terminar el int main {})
Código: [Seleccionar]
system("pause");
Título: Re:[C++] No me funcionan...
Publicado por: Siquillote en 29 de Octubre de 2010, 16:46:33 pm

¿Valdría usar getch()?) He probado con getch, sale todo correcto pero al pulsar una tecla me salta el error. Ya por lo menos no sale nada mas sin pulsar ninguna tecla...
Título: Re:[C++] No me funcionan...
Publicado por: naveda en 29 de Octubre de 2010, 17:04:05 pm
Probablemente el motivo es que no estas devolviendo nada en main...

pon al final del main
Código: [Seleccionar]
return 0;
Título: Re:[C++] No me funcionan...
Publicado por: Siquillote en 29 de Octubre de 2010, 17:13:12 pm

Nada, funciona correctamente pero al final siempre salta el error. ¿Podría ser que sea el compilador? Uso Code::Blocks
Título: Re:[C++] No me funcionan...
Publicado por: Farresito en 29 de Octubre de 2010, 18:07:02 pm
Nada, funciona correctamente pero al final siempre salta el error. ¿Podría ser que sea el compilador? Uso Code::Blocks
El IDE (codeblocks) no tiene la culpa. Antes será el GCC (minGW en windows, que es una adaptacion) el que será problematico pero me es dificil. Estas seguro que has metido el codeblocks en la carpeta C en vez de D? Por si las moscas

Un abrazo
Título: Re:[C++] No me funcionan...
Publicado por: Siquillote en 29 de Octubre de 2010, 18:29:35 pm

Nada Farresito...
Título: Re:[C++] No me funcionan...
Publicado por: CarlosRdrz en 29 de Octubre de 2010, 18:49:15 pm
¿Has probado a ejecutarlo sin el Code::Blocks?
Me refiero a compilarlo y simplemente hacerle doble click o ejecutarlo desde el cmd de Windows.
Ese mensaje que obtienes (Lo de process returned 0) no tiene por qué ser un error, si no mas bien parece un mensaje de control.

Quizás si lo haces fuera del IDE no te lo devuelva.

Aún así, en algunos IDE's viene las opciones Debug y Release para tu proyecto (Recuerdo que el Visual C++ traía esa opción, no se si el Code::Blocks tambien la traerá), quizás si lo pones en modo Release ya no te muestre ese mensaje.

Saludos!
Título: Re:[C++] No me funcionan...
Publicado por: Farresito en 29 de Octubre de 2010, 22:32:08 pm
Siqui, prueba lo que dice TLX, mediante la línea de comandos. Lo que te pasa es MUY extraño. Nunca me ha pasado ^^.

Si entiendes el inglés, creo que esto te será útil para compilar por CMD: http://www.mingw.org/wiki/MinGWforFirstTimeUsers

Un abrazo
Título: Re:[C++] No me funcionan...
Publicado por: Physlet en 30 de Octubre de 2010, 16:23:54 pm
Prueba compilar otro programa en C++ (no C, porque C sí te funciona y es lo que te has dedicado a aprender en vez de C++).


Edito:
Quita las librerías de C.

Acabo de hacer esta aplicación con el CodeBlocks y el compilador GCC.

Código: [Seleccionar]
#include <iostream>
using namespace std;

class Calc{
    private:
        double val1, val2;

    public: void set(double a, double b){
        val1 = a;
        val2 = b;
    }

    public:
        double sumar(){
            return val1+val2;
        }

        double restar(){
            return val1-val2;
        }

        double multiplicar(){
            return val1*val2;
        }

        double dividir(){
            return val1/val2;
        }

};

int main()
{
    int opt;
    double a, b, res;
    string oper;

    bool validate;
    Calc obj;

    cout << "Introduce el primer número: ";
    cin >> a;
    cout << "Introduce el segundo número: ";
    cin >> b;
    cout << "- Operaciones a Realizar -\n\n"
         << "1. Sumar\n2. Restar\n3. Multiplicar\n4. Dividir";

    do{
        cout << "\n\n¿Qué operación desea realizar?: ";
        cin >> opt;
        validate = opt >= 1 && opt <= 4;

        if(!validate)
            cout << "Error, solo puedes introducir valores entre 1 y 4 como opciones.";
    } while(!validate);

    obj.set(a, b);

    switch(opt){
        case 1:
            res = obj.sumar();
            oper = "El total";
        break;

        case 2:
            res = obj.restar();
            oper = "La diferencia";
        break;

        case 3:
            res = obj.multiplicar();
            oper = "El producto";
        break;

        case 4:
            res = obj.dividir();
            oper = "El cociente";
        break;
    }

    cout << oper<<" es: "<<res;
}

Me corrió bien, así que si no te compila o algo puede que sea problema del compilador.
Título: Re:[C++] No me funcionan...
Publicado por: gink en 01 de Noviembre de 2010, 15:54:21 pm
Yo utilizo el Dev-c++, que utiliza el gcc y funciona perfecto. ¡Compruebalo!
Título: Re:[C++] No me funcionan...
Publicado por: Siquillote en 01 de Noviembre de 2010, 16:06:02 pm

Yo utilizo el Dev-c++, que utiliza el gcc y funciona perfecto. ¡Compruebalo!

¡Y es el que estaba usando yo pero todos dicen que DEV++ esta obsoleto no se que mas y ayer me dijo TLX que eran tonterías que no le pasa nada asi que supongo que seguiré igual con Dev++!
Título: Re:[C++] No me funcionan...
Publicado por: Znet en 01 de Noviembre de 2010, 16:40:48 pm
Si te sigue sin funcionar prueba a usar printf en vez de cout y scanf en vez de cin, por ejemplo:

#include <stdio.h>;                               //para el prinf y scanf
#include <stdlib.h>;                             //para usar el system("PAUSE")

int main() {

int entero1, entero2, total;
printf("Introduce un entero \n");
scanf("%d", &entero1);
printf("Introduce otro entero \n");
scanf("%d", &entero2);
total = entero1 + entero2;
printf("La suma es %d \n",  total");
system("PAUSE");
return 0;
}



PD: Yo uso el wxDev-c++.

Saludos!
Título: Re:[C++] No me funcionan...
Publicado por: Siquillote en 01 de Noviembre de 2010, 16:52:11 pm

Gracias Znet pero justamente usaba eso antes de querer pasarme a cin y cout por que lo veo mas rápido ;)
Título: Re:[C++] No me funcionan...
Publicado por: gink en 01 de Noviembre de 2010, 16:56:04 pm
¡Y es el que estaba usando yo pero todos dicen que DEV++ esta obsoleto no se que mas y ayer me dijo TLX que eran tonterías que no le pasa nada asi que supongo que seguiré igual con Dev++!
Eso dicen los que no saben :P
El dev-c++ es excelente, no lo cambies por nada
Título: Re:[C++] No me funcionan...
Publicado por: naveda en 01 de Noviembre de 2010, 17:50:16 pm
Si usais DevC++ y empezais a querer algo más, vais a lamentar no haber empezado a desarrollar directamente con un buen IDE...
Recomiendo que probeis qtCreator, es multiplataforma y permite hacer debugg... Es mas de lo que muchos pueden ofrecer :D
Título: Re:[C++] No me funcionan...
Publicado por: CarlosRdrz en 01 de Noviembre de 2010, 17:55:00 pm
Yo prefiero no usar ningún IDE... realmente tienen alguna función interesante (yo personalmente solo hecho de menos que te diga los parámetros de las funciones según escribes pero bueno). Por lo demás...
Gedit modificado un poco para programar y DDD para debugear y me va todo de perlas, nunca he necesitado nada más.
Un IDE es otra cosa mas que debes aprender a usar...

Saludos!
Título: Re:[C++] No me funcionan...
Publicado por: Physlet en 01 de Noviembre de 2010, 17:59:48 pm
Gracias Znet pero justamente usaba eso antes de querer pasarme a cin y cout por que lo veo mas rápido ;)
Lo que pasa es que cuando intentabas hacer lo nuevo, estabas incluyendo las librerías de C y como lo que querías era programar en C++ te decía que las librerías que estás usando están 'desaprobadas' (deprecated). La solución era la que te dije, que no hiciste caso :P
Título: Re:[C++] No me funcionan...
Publicado por: Siquillote en 01 de Noviembre de 2010, 18:02:17 pm

Lo que pasa es que cuando intentabas hacer lo nuevo, estabas incluyendo las librerías de C y como lo que querías era programar en C++ te decía que las librerías que estás usando están 'desaprobadas' (deprecated). La solución era la que te dije, que no hiciste caso :P

 :confused: ¿Entonces he estado estudiando todo este tiempo C en vez de C++?  :(
Título: Re:[C++] No me funcionan...
Publicado por: Physlet en 01 de Noviembre de 2010, 18:04:27 pm
:confused: ¿Entonces he estado estudiando todo este tiempo C en vez de C++?  :(
Exactamente.
Mira el ejemplo que puse aquí: http://www.phperos.net/foro/index.php/topic,6860.msg52511.html#msg52511
Está en C++, usando la librería iostream, entradas y salidas con cin/cout y orientado a objetos.

Estudiar C es un buen comienzo para entrar a C++ porque eso te ayuda a comprender la estructura básica de ese lenguaje.
Título: Re:[C++] No me funcionan...
Publicado por: Siquillote en 01 de Noviembre de 2010, 18:06:58 pm
Exactamente.
Mira el ejemplo que puse aquí: http://www.phperos.net/foro/index.php/topic,6860.msg52511.html#msg52511
Está en C++, usando la librería iostream, entradas y salidas con cin/cout y orientado a objetos.

Estudiar C es un buen comienzo para entrar a C++ porque eso te ayuda a comprender la estructura básica de ese lenguaje.

Vale muchas gracias por advertirme a tiempo. Supongo que tendré que empezar todo de nuevo... gracias de nuevo Physlet ;)
Título: Re:[C++] No me funcionan...
Publicado por: Farresito en 01 de Noviembre de 2010, 18:46:14 pm
¡Y es el que estaba usando yo pero todos dicen que DEV++ esta obsoleto no se que mas y ayer me dijo TLX que eran tonterías que no le pasa nada asi que supongo que seguiré igual con Dev++!
Dev-C++ SI está obsoleto, y se ha acabado su desarrollo, lo dice en una nota en la propia web del software. Lo que ha salido es wxDev-C++ que da soporte a wxWidgets, y deriva de Dev-C++

Por supuesto puedes seguir usándolo, pero acuérdate de ir actualizando el compilador MinGW de vez en cuando, porque al final te vas a quedar atrás en algunas cosas ^^

¡Un abrazo!

PD: Siqui, estudia tanto C como C++, son prácticamente iguales, a excepción de algunas cosillas. De este modo te ayudará a entender muchos códigos, ya que se sigue programando en C :). Al fin y al cabo el error era una tontería :P.
Título: Re:[C++] No me funcionan...
Publicado por: CarlosRdrz en 01 de Noviembre de 2010, 20:31:59 pm
Dev-C++ SI está obsoleto, y se ha acabado su desarrollo, lo dice en una nota en la propia web del software. Lo que ha salido es wxDev-C++ que da soporte a wxWidgets, y deriva de Dev-C++

Por supuesto puedes seguir usándolo, pero acuérdate de ir actualizando el compilador MinGW de vez en cuando, porque al final te vas a quedar atrás en algunas cosas ^^

¡Un abrazo!

PD: Siqui, estudia tanto C como C++, son prácticamente iguales, a excepción de algunas cosillas. De este modo te ayudará a entender muchos códigos, ya que se sigue programando en C :). Al fin y al cabo el error era una tontería :P.

Vale que su desarrollo no siga desde el 2002, pero para lo que Siquillote quiere le viene perfecto, y si no le ha dado ningún problema... ¿para que cambiar?
Incluso yo a veces todavía lo uso para compilar Nails en Windows y no me ha dado ningún problema.

Respecto a lo de estudiar...
Estudia C, y luego C++. El segundo es una expansión del primero, así que eso. Aunque tu pongas "aprender c++" en google, será como aprender c, no notarás la diferencia jaja

Saludos!
Título: Re:[C++] No me funcionan...
Publicado por: Siquillote en 01 de Noviembre de 2010, 20:40:38 pm

¡Bieeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeen! Funciona en Dev-C++ ¡Os daré a todos un k+! jajajaja!
Título: Re:[C++] No me funcionan...
Publicado por: gink en 01 de Noviembre de 2010, 20:46:10 pm
Traté de bajarme el qtCreator pero me lio mucho en la web de nokia, argggh

Igualmente Dev++ tiene todo lo que necesito, aunque últimamente no estuve mucho dentro de la programación :P ¡Mucha tarea!
Título: Re:[C++] No me funcionan...
Publicado por: Farresito en 01 de Noviembre de 2010, 21:38:43 pm
Traté de bajarme el qtCreator pero me lio mucho en la web de nokia, argggh

Igualmente Dev++ tiene todo lo que necesito, aunque últimamente no estuve mucho dentro de la programación :P ¡Mucha tarea!
Está fantástico el qtCreator :D. Te dejo Karma+ Naveda ^^ (aunque a tu no te sirven. Te conectas a la base de datos y modificas los valores de tu karma xD). Nah, es mejor de lo que me pensaba. Interfaz muy bonita y amigable

Un abrazo.

PD: Tendrás que esperar a tu Karma, me equivoqué y le dí a Phys xD. Igualmente, también te lo mereces por la ayuda que das a los usuarios, así que también me sabe bien ;)