Autor
|
Tema: Duda programa básica c++ (Leído 3,565 veces)
|
~H~
Desconectado
Mensajes: 22
|
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; }
|
|
|
En línea
|
|
|
|
Puntoinfinito
Desconectado
Mensajes: 919
#! /win/archlinux
|
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.
|
|
|
En línea
|
|
|
|
~H~
Desconectado
Mensajes: 22
|
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
|
|
« Última modificación: 17 Marzo 2013, 20:55 pm por Handelson »
|
En línea
|
|
|
|
Puntoinfinito
Desconectado
Mensajes: 919
#! /win/archlinux
|
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
|
|
|
En línea
|
|
|
|
~H~
Desconectado
Mensajes: 22
|
Muchas gracias, ya lo entiendo, me imaginaba algo así.
|
|
|
En línea
|
|
|
|
rir3760
Desconectado
Mensajes: 1.639
|
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++ 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
|
|
|
En línea
|
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~
Desconectado
Mensajes: 22
|
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.
|
|
« Última modificación: 15 Abril 2013, 18:03 pm por Handelson »
|
En línea
|
|
|
|
leosansan
Desconectado
Mensajes: 1.314
|
.....................................................
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!. ...
|
|
|
En línea
|
|
|
|
|
~H~
Desconectado
Mensajes: 22
|
gracias no lo sabía, este es mejor sí
|
|
|
En línea
|
|
|
|
|
|