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 grandement 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.