Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: invisible_hack en 27 Abril 2010, 13:12 pm



Título: ¿Peculiaridades del DevC++ a la hora de programar en C++?
Publicado por: invisible_hack en 27 Abril 2010, 13:12 pm
Buenas  :D

Estoy con C++, el caso es que, usando el VC++, este código me compila

Código
  1. //Ficheros de cabecera
  2. #include "iostream.h"  
  3. #include "istream.h"
  4. //Definición de estructuras
  5. struct PROFESOR
  6. {
  7. char nom[15];
  8. char dir[30];
  9. int tel;
  10. };
  11.  
  12. //Definición de constantes
  13. #define PROFES 100
  14.  
  15.  
  16. //Función Principal
  17. void main()
  18. {
  19. //Declaración de variables
  20. int i;
  21. struct PROFESOR prof[PROFES];
  22.  
  23. //Operaciones
  24. for(i=0;i<PROFES;i++)
  25. {
  26. cout<<"\n Teclee nombre \n";
  27. cin.getline(prof[i].nom,15);
  28.  
  29.  
  30. cout<<"\n Teclee dirección \n";  
  31. cin.getline(prof[i].dir,30);
  32.  
  33. cout<<"\n Teclee telefóno \n";
  34. cin>>prof[i].tel;
  35.  
  36. cin.ignore();
  37. }
  38.  
  39.  
  40. for(i=0;i<PROFES;i++)
  41. {    
  42. cout<<"D. "<<prof[i].nom<<" vive en "<<prof[i].dir<<" y su teléfono es: "<<prof[i].tel<<"\n";    
  43.  
  44. }
  45.  
  46. }
  47.  
  48.  

Pero si uso DevC++ me tira unos cuantos errores...(no me digan lo de que ponga int main en vez de void main, eso ya lo sé, y cambié eso y tampoco iba  :xD)

El caso es que he pensado que, al igual que a la hora de programar en C, en DevC++ hay que tener en cuenta ciertas cosas, como por ejemplo usar el

Código
  1. system("pause");
  2.  

Y esas cosillas...

Pues supongo que para C++, el compilador DevC++ también tendrá ciertas peculiaridades, y pues era por si me podiais comentar un poco cuales podrían ser asi a grandes rasgos, porque todavia no he conseguido hacer correr ese programa en DevC++, y es el que uso de habitud :xD

Gracias  ;D


Título: Re: ¿Peculiaridades del DevC++ a la hora de programar en C++?
Publicado por: DarkItachi en 27 Abril 2010, 14:31 pm
Código
  1. //Ficheros de cabecera
  2. #include <iostream>  
  3. using namespace std;
  4. //Definición de estructuras
  5. struct PROFESOR
  6. {
  7. char nom[15];
  8. char dir[30];
  9. int tel;
  10. };
  11. //Definición de constantes
  12. #define PROFES 100
  13. //Función Principal
  14. int main()
  15. {
  16. //Declaración de variables
  17. int i;
  18. PROFESOR prof[PROFES];
  19. //Operaciones
  20. for(i=0;i<PROFES;i++)
  21. {
  22. cout<<"\n Teclee nombre \n";
  23. cin.getline(prof[i].nom,15);
  24. cout<<"\n Teclee dirección \n";  
  25. cin.getline(prof[i].dir,30);
  26. cout<<"\n Teclee telefóno \n";
  27. cin>>prof[i].tel;
  28. cin.ignore();
  29. }
  30. for(i=0;i<PROFES;i++)
  31. {    
  32. cout<<"D. "<<prof[i].nom<<" vive en "<<prof[i].dir<<" y su teléfono es: "<<prof[i].tel<<"\n";    
  33. }
  34. }
  35.  

Fíjate en los cambios, ahora voy corto de tiempo para explicarte ;) Salu2


Título: Re: ¿Peculiaridades del DevC++ a la hora de programar en C++?
Publicado por: invisible_hack en 27 Abril 2010, 16:26 pm
Hola. :)

Resulta que, si me compilaba con el código que yo habia puesto...lo volvi a hacer y vi que si me lo creó... :rolleyes: :rolleyes:

Lo que pasa, que al compilar, pues en lugar de salirme el mensajito ese que pone "Done" en el DevC++ cuando todo compila bien sin errores, pues me salieron como una serie de avisos, y yo pensé que eran errores, y di por hecho que, como eran errores, no compilaria..., pero me paré a leerlos y vi que no son errores, sino como comentarios...y además si que me crea el .exe final  :xD

Osea me crea el .exe y todo, y el programa hace lo que tiene que hacer...

Solo que me creó el .exe en otro directorio, y como no me salió lo de "Done" pues di por hecho que no me compiló...

(http://r.i.elhacker.net/cache?url=http://i39.tinypic.com/2r263ux.jpg)

Si te fijas, los mensajes que me da, no son de error, sino como mostrando lo que ha hecho...

Lo que no entiendo, es el último, el warning ese que me da, diciendo eso de:

Citar
warning: this file includes at least one deprecated or anticuated header

Lo que viene a significar que uso un fichero de cabecera anticuado, es decir, como si estuviese en desuso o algo...

Y si hago clic sobre el warning en cuestión, me abre como otra hoja en el compilador, en el que sale como si fuese la licencia del compilador, la verdad que no sé a que viene... :-\

(http://r.i.elhacker.net/cache?url=http://i39.tinypic.com/2d2hggp.jpg)

Si alguien sabe porque sale eso, le agradecería que me dijera, porque aunque me funcionó ya el programa, me he quedao en plan ....  :huh: :huh: :huh:

Porque es como si alguna línea del código infringiera el copyright de la licencia del compilador, o alguna movida así  :-\


Título: Re: ¿Peculiaridades del DevC++ a la hora de programar en C++?
Publicado por: .:BlackCoder:. en 27 Abril 2010, 16:43 pm
Hola... esos avisos (warnings) consideralos errores... es mejor sin warnings  :xD eso creo que es porq tu el include lo hiciste diferente fijate en el code de darkitachi... Y deberias usar el using namespace std; o cada vez que utilizes cout o cin coloca std::cout<<blablabla... respectivamente... Y lo mejor es que retornes 0...

Recuerda que algunos compiladores "prefieren" sus librerias  :xD...

Saludos...


Título: Re: ¿Peculiaridades del DevC++ a la hora de programar en C++?
Publicado por: Littlehorse en 27 Abril 2010, 19:23 pm
Es que iostream.h es un header antiguo, iostream es el que tiene que usar. Si quieres saber las diferencias basta con buscar iostream.h iostream en google.
Esto creo que ya lo había explicado en otro post así que no me voy a extender otra vez pero te dejo un link que seguro te va a servir, click (http://members.gamedev.net/sicrane/articles/iostream.html)

Saludos


Título: Re: ¿Peculiaridades del DevC++ a la hora de programar en C++?
Publicado por: invisible_hack en 28 Abril 2010, 20:11 pm
Bueno pues.... ;D

Código
  1. //Ficheros de cabecera
  2. #include <iostream>  
  3. using namespace std;
  4. //Definición de estructuras
  5. struct PROFESOR
  6. {
  7. char nom[15];
  8. char dir[30];
  9. int tel;
  10. };
  11.  
  12. //Definición de constantes
  13. #define PROFES 2
  14.  
  15.  
  16. //Función Principal
  17. int main()
  18. {
  19. //Declaración de variables
  20. int i;
  21. struct PROFESOR prof[PROFES];
  22.  
  23. //Operaciones
  24. for(i=0;i<PROFES;i++)
  25. {
  26. cout<<"\n Teclee nombre \n";
  27. cin.getline(prof[i].nom,15);
  28.  
  29.  
  30. cout<<"\n Teclee dirección \n";  
  31. cin.getline(prof[i].dir,30);
  32.  
  33. cout<<"\n Teclee telefóno \n";
  34. cin>>prof[i].tel;
  35.  
  36. cin.ignore();
  37. }
  38.  
  39.  
  40. for(i=0;i<PROFES;i++)
  41. {    
  42. cout<<"D. "<<prof[i].nom<<" vive en "<<prof[i].dir<<" y su teléfono es: "<<prof[i].tel<<endl;    
  43.        system("pause");
  44. }
  45.  
  46. }
  47.  

Ya está... :P

Para la próxima ya sé, me olvido de istream.h  :xD

De hecho varios ejemplos que vi usaban directamente <iostream> pero luego en clase nos habían dicho sobre usar el "istream.h", pero nah, veo que lo que se usa ahora es directamente lo otro, además claro, yo siempre ponía <iostream.h>, y no hay que poner la terminación ".h"  :xD

Bueno pues eso, solucionado jeje, espero no aburrir mucho con mis futuras dudas, muchas gracias a todos los participantes de este hilo  ;D