Comment lire char après char de paramètre de ligne de commande?
Je suis très débutant en C. Dans mon programme, l'utilisateur va ajouter un argument via la ligne de commande. Cet argument peut être une chaîne de caractères par exemple, "Bonjour, comment allez-vous". Je voudrais lire char après char de cette chaîne. Cette chaîne a une inconnue de taille. Donc, l'exemple de l'exécution d'un programme (sous Windows) est: test "Bonjour, comment allez-vous"
Quelque chose comme
#include <stdio.h>
int main()
{
char c;
while ((c = getchar()) != EOF)
putchar(c);
return 0;
}
Caractère c doit être lu de la chaîne d'entrée, qui est quelque chose que je ne peux pas faire.
J'espère que j'ai fait, il est clair.
Merci pour votre aide.
Vous devez vous connecter pour publier un commentaire.
getchar
lit depuis l'entrée standard, de sorte que votre programme n'est de lire l'entrée standard, caractère par caractère, et de les imprimer sur la sortie standard. Il y a une erreur, vous devez déclarerc
comme unint
, parce queEOF
est généralement-1
.Cependant, vous essayez d'imprimer l'argument de ligne de commande. Pour accomplir cela, vous n'avez pas besoin de le faire caractère par caractère. Vous avez besoin d'utiliser
main
version avec des arguments comme ceci:Lorsque vous appelez le programme
test "Hello, how are you"
,argv[1]
est déjà la chaîne d'argumentHello, how are you
. Vous pouvez utiliser cette chaîne directement.Je ne vais pas vous donner le code, vous pouvez utiliser
printf
de la chaîne d'impression. Si vous désirez obtenir de chaque personnage, utiliser une boucle pour obtenir à partir de la chaîneargv[1]
.Paramètres de ligne de commande dans C sont passés à la fonction principale. Vous devez déclarer la fonction main avec la signature suivante:
Puis
argc
est le nombre de paramètres de ligne de commande,argv
est un tableau de chaînes contenant chaque paramètre.Vous pouvez alors accéder à chaque personnage avec une simple boucle: