Question sur le C

Bonjour,
je viens de finir avec le gros de la théorie sur le langage C. Néanmoins, j'ai quelque préoccupations:
- je n'ai pas pus trouver de cours claire sur la création des fenêtre graphiques en langage C. Cela veut-il dire qu'il est quasi impossible d'en faire?
- je remarque que dans beaucoup d'exemple sur la toile la fonction main est écrite avec deux arguments: un entier et un pointeur sur un char, c'est à dire int main(int argc, char *argv[]). Je ne vois nul part où ces variable sont utilisés. Je suis même allé plus loin en écrivant des programmes en les omettant; ceux-xi ont bien fonctionnés. Donc?...A quoi sert ces arguments????

3 réponses

  1. Contributeur
    Bonjour,

    - je n'ai pas pus trouver de cours claire sur la création des fenêtre graphiques en langage C. Cela veut-il dire qu'il est quasi impossible d'en faire?
    Il ne s'agit plus vraiment de C. Il n'y a rien de portable en C. Il faut se diriger vers Qt, GTK+, l'api windows, ...

    Pour l'autre question, argc/argv permet de récupérer les arguments passés en paramètre du programme. Par exemple : nomProgramme 5 6, cela permetra de récupérer les valeurs 5 et 6 (argv[1]="5",argv[2]="6")
    Mais ce prototype du main n'est pas obligatoire. Tu peux très bien écrire : int main(void), si tu ne comptes pas utiliser cette fonctionnalité.

    Cdlt,
    0
    1. Modérateur
      Les interfaces graphiques peuvent bien sûr se faire en C, il y en a même beaucoup !
      Mais je ne sais pas vraiment dire lesquels sont les mieux...

      Sinon, les arguments de la fonction main sont :
      argc : le nombre de paramètres passés au programme
      argv : le tableau des paramètres passés au programme (argv[0] est le nom du programme)
      arge : le tableau des variables d'environnement (le dernier vaut NULL)

      Tu peux par exemple tester ce code :

      int main(int argc, char* argv[], char* arge[]) 
      { 
          int i;
          for (i=0; i<argc; i++)
              printf("%s\n",argv[i]);
          
          printf("\n");
          
          for (i=0; arge[i]!=NULL; i++)
              printf("%s\n",arge[i]);
          
          return 0;
      }
      La confiance n'exclut pas le contrôle
      0
      1. Contributeur
        argc : le nombre de paramètres passés au programme
        Pas exactement. argc contient le nombre d'arguments + 1
        argv[0] est le nom du programme
        Ainsi que le chemin d'appel.
        arge : le tableau des variables d'environnement (le dernier vaut NULL)
        Ce n'est pas standard le troisième argument.

        Cdlt,
        0
    2. Contributeur
      créer des fenêtre graphique nécessite de communiquer avec l'OS. ça ne dépend pas uniquement du C.
      0