Quelle est la différence entre les arguments de ligne de commande et la fonction scanf en langage C?


Réponse 1:
  • Comment un programme qui utilise des arguments de ligne de commande est codé en C est bien expliqué dans d'autres réponses. Permettez-moi de vous expliquer simplement comment cela fonctionne. Oubliez C pendant un moment et prenez un exemple. Supposons que vous ayez installé MS-Office sur votre ordinateur. Maintenant, lorsque vous cliquez avec le bouton droit sur un fichier docx à partir de votre PC, il vous donnera ces types d'options: Ouvrir avec Microsoft Word 2010 Maintenant, lorsque vous cliquez sur l'option Ouvrir avec Microsoft Word 2010, le chemin du fichier docx est transmis à MSWORD Fichier .exe (qui se trouvait dans le dossier C: \ Program Files lorsque vous avez effectué la configuration du logiciel) en tant qu'argument de ligne de commande (CLA) .Mais s'il n'y avait pas d'arguments de ligne de commande, vous ouvririez probablement d'abord Microsoft Word 2010 ( qui n'est en fait rien d'autre que MSWORD.exe), puis cliquez sur Fichier-> Ouvrir. Recherchez ensuite le fichier .docx, puis ouvrez-le. Ainsi, l'argument de ligne de commande ne lit pas les entrées. Il indique au programme de s'initialiser avec quelque chose qui lui est transmis via la ligne de commande arguments.scanf peut être utilisé en fonction des conditions, plusieurs fois dans un programme. Les arguments de ligne de commande ne peuvent être fournis qu'une seule fois, au moment de l'initialisation du programme. Prenons un autre exemple ci-dessous:
Écrivez un programme pour lire un numéro à l'utilisateur. Si le nombre est le même que celui stocké dans une table de la base de données, le programme devrait lire 3 autres nombres; sinon lisez 7 autres numéros. Si l'un des 3 nombres est le même que celui stocké dans une table de la base de données, le programme devrait lire 5 autres nombres; sinon, il devrait lire 9 numéros supplémentaires.

Maintenant, dites-moi, dans le programme ci-dessus, si vous souhaitez utiliser CLA au lieu de scanf, combien d'arguments de ligne de commande accepterez-vous dans la fonction main ()?


Réponse 2:

1. L'argument de la ligne de commande signifie quelque chose transmis au programme lors de l'appel à partir de la CLI.

Par exemple, en supposant que je compile mon programme C:

$ clang helloworld.c

Le programme est clang et l'argument est helloworld.c

2. scanf est interactif. Les arguments de ligne de commande ne le sont pas.

Les entrées interactives supposent que l'utilisateur l'utilise de manière interactive, ce qui peut ne pas être le cas (selon la conception Unix: cela devrait fonctionner facilement avec d'autres programmes). Un utilisateur peut le faire directement ...

$ clang
Entrez le nom du fichier: helloworld.c

Mais pour un programme, c'est beaucoup plus simple:

système ("clang helloworld.c");

Et cela répond également à la question 3.