Me han estado llegando comentarios y correos con dudas, correcciones y todo tipo de insultos (no, eso último no) y decidí responder todos ellos con este post en el que aclararé lo que es C y lo que es C++ y sus diferencias. C fue creado en 1972 por Dennis M. Ritchie en los Laboratorios Bell como evolución del anterior lenguaje B, a su vez basado en BCPL. C++, por su parte, fue creado a mediados de los años 1980 por Bjarne Stroustrup. La intención de su creación fue el extender al exitoso lenguaje de programación C con mecanismos que permitan la manipulación de objetos. Así que C es el lenguaje original, mientras que C++ es una ampliación de C, por eso el ++. A mi cuando me enseñaron a programar me dijeron que iba a aprender a programar en C++, pero en verdad me enseñaron únicamente C, así que muchos profesores en realidad no saben lo que es programar en C++. Veamos un hola mundo en los dos programas: En C 1 2 3 4 5 6 7 #include int main() { printf ("Hola Mundo"); return 0; } En C++ 1 2 3 4 5 6 7 8 9 #include using namespace std; int main() { cout << "Hola mundo"; return 0; } Para el tipo de programas que se estarán mostrando en este blog la diferencia más importante es la entrada y salida de datos. Así que veamos un ejemplo de entrada y salida de datos de cada programa: En C 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 #include int main() { int radio; float area, perimetro; // SALIDA: mensaje un pantalla printf("Introduce el radio del circulo: "); //ENTRADA: recibir dato desde teclado scanf("%d", &radio); // calculos area = 3.1416 * radio * radio; perimetro = 3.1416 * radio * 2; //SALIDA: resultado en pantalla printf("El area es %.2f y el perimetro %.2f", area, perimetro); getch(); return 0; } En C++ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 #include using namespace std; int main() { int radio; float area, perimetro; // SALIDA: mensaje un pantalla cout << "Introduce el radio del circulo: "; //ENTRADA: recibir dato desde teclado cin >> radio; // calculos area = 3.1416 * radio * radio; perimetro = 3.1416 * radio * 2; //SALIDA: resultado en pantalla cout << "El area es " << area << " y el perimetro " << perimetro; cin.get();cin.get(); return 0; } Lo que noté al hacer estos dos programitas es que pedir un dato en C++ es mucho mucho más simple que en C. Sin embargo, el asunto de los << y >> puede llegar a ‘asustar’ a los recién iniciados en la programación. Pedir un dato en C scanf("modificador", &nombre de la variable); Pedir un dato en C++ cin >> nombre de la variable; Mostrar un dato en C printf("Dato: modificador", nombre de la variable); Mostrar un dato en C++ cout << "Dato: " << nombre de la variable; Los modificadores son los siguientes: %d para int, %f para float, %s para string, %c para char. Librerías en C++ Por simple convención las librerías en C terminan en ‘.h’ (punto hache). Todas las librerías de C sirven para C++, sin embargo, también por convención, se elimina la terminación ‘.h’ y mejor se agrega ‘c’ al principio. Libreria en C Librería en C++ math.h cmath string.h cstring time.h ctime etcetera. El ‘namespace’ C como lenguaje tiene un conjunto de palabras reservadas, como por ejemplo: if, for, while, int, float, … C++ es una ampliación, por lo tanto tiene que agregar nuevas palabras reservadas. Éstas palabras reservadas están en un ‘namespace’ (espacio de nombres). En específico cout y cin están el namespace std (standard). Si no declararamos que vamos a usar el namespace std (using namespace std;), cada vez que quisieramos usar cout, tendríamos que escribir std::cout. Espero que a partir de ahora pueden identificar si un programa está en C o en C++. También espero estar publicando mis programas en ambos lenguajes a partir de ahora.