Question sur le C

Fermé
mumberea - 19 oct. 2011 à 23:01
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 20 oct. 2011 à 23:45
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

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
19 oct. 2011 à 23:15
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
KX Messages postés 16754 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 020
Modifié par KX le 19/10/2011 à 23:28
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
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
20 oct. 2011 à 21:56
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
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
20 oct. 2011 à 23:45
créer des fenêtre graphique nécessite de communiquer avec l'OS. ça ne dépend pas uniquement du C.
0