Le langage C++ s'est développé à partir du langage C et l'étend. La nouveauté la plus remarquable est sans doute la possibilité de faire de la programmation Orienté Objet. Mais sans même entrer dans ces changements qui obligent à penser différemment, on peut simplifier les programmes en C en adoptant juste quelques petits éléments du C++.
L'exemple suivant (dans lequel il s'agit de deviner un nombre entre 0 et 99) montre comment remplacer printf et scanf par des objets plus lisibles de C++:
Le programme en C (compiler avec gcc -W -Wall exemple.c -o exemple):
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n=rand()%100; // nombre a deviner entre 0 et 99
int i;
do {
printf("Votre nombre: \n");
scanf("%d",&i);
if (i>n)
printf("C'est moins\n");
else if (i<n)
printf("C'est plus\n");
else
printf("Juste!\n");
} while (i!=n);
return 0;
}
Le même programme en C++ (compiler avec g++ -W -Wall exemple.cpp -o exemple):
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
int n=rand()%100; // nombre a deviner entre 0 et 99
int i;
do {
cout << "Votre nombre: ";
cin >> i;
if (i>n)
cout << "C'est moins" << endl;
else if (i<n)
cout << "C'est plus" << endl;
else
cout << "Juste!" << endl;
} while (i!=n);
return 0;
}
Cet exemple est tiré du cours de Renaud Keriven à l'ENPC. Ce cours (un poly électronique est disponible en ligne) est vivement conseillé à ceux qui voudraient en apprendre plus.