|
|
|
|
Bonjour, ça fait un moment que je programme en c++ avec dev-cpp, et dé-que je commence un nouveau projet console il commence par :
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv [ ] )
mais d'après les liver que j'ai lu, un programme c++ commence juste par:
# inclu.........
main()
et donc si vous pouver me renseigner sur le role de la differentes de ces deux lignes, merci beaucoup,et à plus
Configuration: Windows XP Internet Explorer 8.0
Mrd9991 bonjour!
cout << "Envoi d'un message"; Mais si tu ne mets pas la directive du début : using namepace std tu aura une erreur disant que cout n'existe pas ou n'est pas déclaré Bien sûr, on peut toujours faire : std::cout << "Envoi d'un message"; ou bien, si tu ne veux pas répéter à chaque fois std::cout, mais tu ne veux pas utiliser tous les noms du namespace std (risque de conflit de noms par exemple) tu peux mettre, au lieu de using namesapce std, des déclarations comme : using std::cout; Pour ce qui est de la ligne int main(int argc, char *argv), elle est aussi valide en C qu'en C++. Par contre, beaucoup de compilateur C++ n'accepterons pas une déclaration contenant juste main() : il faudrait au moins la valeur de retour, comme int main(); En conclusion je pense que le livre que tu as lu doit être ancien, ou bien c'est un livre de C ! A quoi servent les argument de la fonction main() ? Là, c'est comme en langage C : le premier argument de type int est le nombre d'arguments de la ligne de commande qui a servi à lancer le programme. C'est donc la taille du tableau argv. Le deuxième est un tableau de chaînes de caractères, dont la première est le nom de l'exécutable, et les autres des éléments tapés ensuite séparés par des espaces. Allez, je te fais un cadeaux qui explique mes dires (je vais finir par concurrencer le site du zéro non ?)
#include <iostream>
// la sortie standard
using std::cout;
// le retour à la ligne
using std::endl;
// note ;
// on aurait bien sûr pu remplacerles using std:: par un seul using namespace std;
/* Ce petit prog C++ affiche le nombre d'arguments de la ligne
* de commande et chacun des arguments
* Le premier argument est le nom complet de l'exécutable lancé
*/
int main(int argc, char *argv[])
{
std::cout << "Nombres d'arguments :" << argc << endl;
std::cout << "Les arguments : " << endl;
for (int i = 0; i < argc; ++i)
{
cout << "argument[" << i << "] = " << argv[i] << endl;
}
}
|
Salut, merci beaucoup cher ami java4ever pour votre superbe explication, grace à vous j'ai en fin compris ce que ça veut dire ces phrases au début de programme,nottament 'using namespace std',et ça surtous lorsque j'ai essayer votre programme, et je dois vous dire que je n'est jamis cru que (int argc, char *argv[]) ce sont deux tableaux, apropos de deuxième je pense que j'ai bien compris de quoi il s'agit , mais apropos de premier je ne sais pas ce que est un 'argument de la ligne de commande', en tous cas merci encore une fois beaucoup pour votre aide, c'est vraiment gentil ce que tu as fait, au revoir. |
Content que ça te convienne mrd9991
int main(int argc, char *argv[]) désigne la méthode principale appelée quand on lance le programme et : Exemple d'exécution du prog que je t'ai passé : C:\mesdev\Cpp\essai\Debug>projtestcpp.exe Nombres d'arguments :1 Les arguments : argument[0] = projtestcpp.exe capito ? |
Salut, merci encore pour votre explication, je pense que j'ai compris, argc est une valeur entière qui désigne la taille de deuxième tableau argv qui contien un seul élément l'exécutable de projet, apropos le livre que j'ai lu il s'appelle 'programmation en c++' c'est de la serie schaum's par l'auteur 'john hubbard' il est super sauf qu'il est impeut ancien, merci pour votre patience, bonne nuit. |
Non, argv contient l'ensemble des arguments passer à la ligne de commande. Issu du monde windows, ça peut te paraitre un peu étrange. En reprenant l'exemple :
|
Salut,oui tu as raison chèr DrNitro le plus important pour programmer en c++ c'est savoir utiliser ce qu'il ya comme fonction et mot clèf et opérateurs dans la bibliothèque de c++, bien sure c'est bien de tous savoir, et c'est ce que j'ai essayer de faire en posant cette question alors je tu remercier.
|