¿Peculiaridades del DevC++ a la hora de programar en C++?

Iniciado por invisible_hack, 27 Abril 2010, 13:12 PM

0 Miembros y 1 Visitante están viendo este tema.

invisible_hack

Buenas  :D

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

Código (cpp) [Seleccionar]

//Ficheros de cabecera
#include "iostream.h"  
#include "istream.h"
//Definición de estructuras
struct PROFESOR
{
char nom[15];
char dir[30];
int tel;
};

//Definición de constantes
#define PROFES 100


//Función Principal
void main()
{
//Declaración de variables
int i;
struct PROFESOR prof[PROFES];

//Operaciones
for(i=0;i<PROFES;i++)
{
cout<<"\n Teclee nombre \n";
cin.getline(prof[i].nom,15);


cout<<"\n Teclee dirección \n";  
cin.getline(prof[i].dir,30);

cout<<"\n Teclee telefóno \n";
cin>>prof[i].tel;

cin.ignore();
}


for(i=0;i<PROFES;i++)
{    
cout<<"D. "<<prof[i].nom<<" vive en "<<prof[i].dir<<" y su teléfono es: "<<prof[i].tel<<"\n";    

}

}



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


system("pause");


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
"Si no visitas mi blog, Chuck te dará una patada giratoria"

DarkItachi

#1
Código (cpp) [Seleccionar]

//Ficheros de cabecera
#include <iostream>  
using namespace std;
//Definición de estructuras
struct PROFESOR
{
char nom[15];
char dir[30];
int tel;
};
//Definición de constantes
#define PROFES 100
//Función Principal
int main()
{
//Declaración de variables
int i;
PROFESOR prof[PROFES];
//Operaciones
for(i=0;i<PROFES;i++)
{
cout<<"\n Teclee nombre \n";
cin.getline(prof[i].nom,15);
cout<<"\n Teclee dirección \n";  
cin.getline(prof[i].dir,30);
cout<<"\n Teclee telefóno \n";
cin>>prof[i].tel;
cin.ignore();
}
for(i=0;i<PROFES;i++)
{    
cout<<"D. "<<prof[i].nom<<" vive en "<<prof[i].dir<<" y su teléfono es: "<<prof[i].tel<<"\n";    
}
}


Fíjate en los cambios, ahora voy corto de tiempo para explicarte ;) Salu2
Come to me when you have these eyes...

By more that you try it, a feather never will achieve to fly.

invisible_hack

#2
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ó...



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... :-\



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í  :-\
"Si no visitas mi blog, Chuck te dará una patada giratoria"

.:BlackCoder:.

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...
"No te esfuerzes por saber mas, esfuerzate por ser el mejor en lo que sabes... Y asi sabras mas" .:BlackCoder:. jajaja




Littlehorse

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

Saludos
An expert is a man who has made all the mistakes which can be made, in a very narrow field.

invisible_hack

Bueno pues.... ;D

Código (cpp) [Seleccionar]

//Ficheros de cabecera
#include <iostream> 
using namespace std;
//Definición de estructuras
struct PROFESOR
{
char nom[15];
char dir[30];
int tel;
};

//Definición de constantes
#define PROFES 2


//Función Principal
int main()
{
//Declaración de variables
int i;
struct PROFESOR prof[PROFES];

//Operaciones
for(i=0;i<PROFES;i++)
{
cout<<"\n Teclee nombre \n";
cin.getline(prof[i].nom,15);


cout<<"\n Teclee dirección \n";   
cin.getline(prof[i].dir,30);

cout<<"\n Teclee telefóno \n";
cin>>prof[i].tel;

cin.ignore();
}


for(i=0;i<PROFES;i++)
{     
cout<<"D. "<<prof[i].nom<<" vive en "<<prof[i].dir<<" y su teléfono es: "<<prof[i].tel<<endl;   
        system("pause");
}

}


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
"Si no visitas mi blog, Chuck te dará una patada giratoria"