Duda programa básica c++

Iniciado por ~H~, 17 Marzo 2013, 19:58 PM

0 Miembros y 2 Visitantes están viendo este tema.

~H~

Me gustaría saber si la función de estos dos programas es la misma, y sin son correctos, porque el primero me lo compila perfectamente y el segundo no.
(Uso dev c++)


#include <iostream>
using namespace std;
int main(){
   
   
    cout << "Hola capullo" << endl;
   
    return 0;
    system("pause");
}




Este es el que no me compila, no me da error, simplemente no se abre, es decir le doy al archivo .exe y como si nada.
#include <iostream>

int main() {
     
     std:: cout << "Hola capullo";
     return 0;
     
}

Puntoinfinito

A ver, el primero no tiene mucho lógica, como pretendes hacer un pause si el programa ya fue devuelto en estado 0, se cerró...
   
   return 0;
   system("pause");
}


Y tal vez tu compilador debe detectar en el segundo código esto:

    std:: cout << "Hola capullo";

como incorrecto... trata de probar uniendo los dos puntos con el cout, todo y que usando g++ de toda la vida pilla bien. Y sino, pues ala, declaras using namespace std; y le quitas el parámetro para decir de cout es estándar.
AHORA EN SOFTONIC || CLICK HERE!!
Base64: QWNhYmFzIGRlIHBlcmRlciAxIG1pbnV0byBkZSB0dSB2aWRhLiBPbOkh



HACK AND 1337 : http://hackandleet.blogspot.com
WEBSITE: http://www.infiniterware.

~H~

#2
Muchas gracias por tu ayuda puntoinfinito, es cierto que no tiene lógica lo del primero, no me habíia fijado, esque soy muy novato empecé con esto hace 2 días, y en el segundo voy a usar "using namespace std;" prefiero eso es más cómodo que estar poniendol "std::"en todos los cout.

Y tenías razón en el segundo hay que unirlos dos puntos con "cout"

#include <iostream>

int main() {
   
    std::cout << "Hola capullo";
    system("pause");
    return 0;
   
}


Pero tengo ahora otra duda, cuando compilo eso me va perfecto el programa.
Pero hay una cosa que no entiendo, en un tutorial ponían ese mismo código fuente pero sin system("pause"), y lo compilaba y se le paraba el programa, sin embargo si yo compilo el programa sin poner system("pause"), el programa se abre y se cierra en un instante sin poder casi verlo.

Eso se debe al tipo de compilador o algo?, porque el del tutorial usaba uno diferente a DEV c++


Gracias por la ayuda

Puntoinfinito

Dev-c++ es una IDE, un entorno de edición de código, tu compilador es g++, esto que me comentas se produce porque seguramente él usaba otro programa para desarrollar, como por ejemplo code::blocks y este te hace un pause automático antes de finalizar el programa ;)
AHORA EN SOFTONIC || CLICK HERE!!
Base64: QWNhYmFzIGRlIHBlcmRlciAxIG1pbnV0byBkZSB0dSB2aWRhLiBPbOkh



HACK AND 1337 : http://hackandleet.blogspot.com
WEBSITE: http://www.infiniterware.

~H~

Muchas gracias, ya lo entiendo, me imaginaba algo así.

rir3760

Cita de: Handelson en 17 Marzo 2013, 20:47 PM
Y tenías razón en el segundo hay que unirlos dos puntos con "cout"

#include <iostream>

int main() {
     
     std::cout << "Hola capullo";
     system("pause");
     return 0;
     
}
Solo aclarar un punto: el espacio blanco (espacio, tabulador, avance de linea, etc.) no puede generar el error que mencionas ya que C++ es un lenguaje de formato libre (el espacio solo importa para separar los componentes, en cualquier otro se ignora).

Por ejemplo esto es valido:
Código (cpp) [Seleccionar]
#include <iostream>
int
main
(
)
{
std
::
cout
<<
"Hola capullo"
;
return
0
;
}

Pero, por supuesto, no se recomienda.

Los únicos casos donde si importan los espacios son las directivas del preprocesador, cadenas literales y algunas declaraciones.

Por cierto si piensas utilizar Dev-C++ hay algunas versiones de este que han sido actualizadas, una de estas es Orwell Dev-C++ y en su log de actualizaciones se indica que se añadió la pausa automática en su versión 5.2.0.0.

No lo he probado y no lo recomiendo pero si te interesa ...

Un saludo
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language

~H~

#6
Gracias por la información, si ya sabía que los espacios en blanco en c++ no deberían dar problemas lo había oído en un tutorial por eso me extrañé tanto, pero cuando lo hice con los puntos juntos me lo compilaba bien, de todos modos prefiero poner la sentencia "using namespace std;" antes de empezar el programa es más práctico.

Sin embargo he probado tu programa y sí que funciona, no se sería un fallo del compilador en ese momento o simplemente me equivoqué yo, de todos modos me han aclarado las dudas.

leosansan

Cita de: Puntoinfinito en 17 Marzo 2013, 20:27 PM
.....................................................

como incorrecto... trata de probar uniendo los dos puntos con el cout, todo y que usando g++ de toda la vida pilla bien. Y sino, pues ala, declaras using namespace std; y le quitas el parámetro para decir de cout es estándar.

Eso sería lo normal, pero con espacio en blanco incluido el Code::Blocks lo ejecuta sin problemas.

Es que esa manía de usar Dev-C++ a estas alturas del siglo XXI .....

Saluditos!. ...

amchacon

Cita de: leosansan en 15 Abril 2013, 21:32 PMEs que esa manía de usar Dev-C++ a estas alturas del siglo XXI .....
Exacto, no hay más que mirar aquí:
http://foro.elhacker.net/programacion_cc/iquestpor_que_no_deberias_usar_el_devcpp-t385150.0.html

El código no cambia nada de un programa a otro, puedes seguir mirando el tutorial que quieras.
Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar

~H~

gracias no lo sabía, este es mejor sí