Fonction d'entrée d'un programme : main()

main() sans argument

// la fonction main() sous Linux a besoin d'une valeur de sortie. Sous bash, il s'agit de la variable $?
int main(void)
{
  return 0; // 0 signifie aucune erreur ou erreur #0
}
  

main() avec des arguments

int main(int argc, char **argv)
{
    // argc: le nombre d'argument: ./nomprogram allo toi ca va, argc = 4
    // argv: les arguments       : ./nomprogram allo toi ca va, argv[0] = ./nomprogram
    return 0;
}
  

On voit aussi la syntaxe int main(int argc, char *argv[]) {}

Exemple dans un programme GNU

Voici le style du main pour la commande ls (coreutils 8.5/src/ls.c:1231):

// exit() et EXIT_SUCCESS sont définis dans stdlib.h

static int exit_status;
int
main (int argc, char **argv)
{
  exit_status = EXIT_SUCCESS;
  exit (exit_status);
}

Conversion de type

{
  double d;
  int i;
					
  i = (int) d; // ou  
  i = int(d);  // type simple et utilisateur
}

pour le pointeurs on doit utiliser un typedef...

L'opérateur ::nomvar - la portée des variables

Exemple sur les variable globale et locale de même nom.

// compilation: g++ testportee.cpp -o testportee
// execution ./testportee
#include <iostream>

int i = 11;

int main() {
    int i = 34;
    {
       int i = 23;
       // incremente le i = 11 à 12.
       ::i = ::i + 1;
       // affiche 12 23
       cout << ::i << "  " << i << endl;
    }
    // affiche 12 34
    cout << ::i << "  " << i << endl;
    return 0;
}

Bibliothèque

iomanip manipulateur d'entrée sortie

#include <iomanip>

Fonctions

//  dec    lecture/écriture d'un entier en décimal  
//  oct    lecture/écriture d'un entier en octal 
//  hex   lecture/écriture d'un entier en hexadécimal  
//  endl    insère un saut de ligne et vide les tampons    
//  setw(int n)    affichage de n caractères 
//  setprecision(int n) affichage de la valeur avec n chiffres
//  			avec éventuellement un arrondi de la valeur
 
//  setfill(char)    définit le caractère de remplissage  
//  flush    vide les tampons après écriture  

Exercices

Description: imprimer un nombre avec une bae.

void print(long valeur, int base = 10);

void main() {
    print(16);    // affiche 16    (16 en base 10) 
    print(16, 2); // affiche 10000 (16 en base 2)
}

void print(long valeur, int base){ 
    cout << ltostr(valeur, base) << endl;
}

Hyperliens...

  • http://www.geocities.com/SiliconValley/Bridge/6177/win95.html