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;
}
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.
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
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 ;)
Muchas gracias, ya lo entiendo, me imaginaba algo así.
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:
#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++ (http://sourceforge.net/projects/orwelldevcpp/?source=navbar) 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
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.
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!. ...(http://st.forocoches.com/foro/images/smilies/SimpHomer.gif)
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.
gracias no lo sabía, este es mejor sí
Gracias pero es lo mismo, probaré con visual studio.
Cita de: Handelson en 20 Abril 2013, 22:59 PM
Gracias pero es lo mismo, probaré con visual studio.
No es lo mismo, evidentemente es el mismo lenguaje con sus mismas limitaciones. Pero no hay color entre el editor de CodeBlocks y Devcpp.
Visual Studio también está muy bien (de lo mejorcito para Windows). Aunque es muyyy complejo.