Je sais qu'il y a déjà d'autres questions et réponses sur l'analyse de la ligne de commande args en c, mais j'espère que quelqu'un pourra me dire pourquoi mon code ne fonctionne pas. Voici mon code. Je veux analyser mes arguments sans en-têtes externes comme getopt.h /(unistd.h) ou args.hComment analyser les arguments de ligne de commande dans c sans getopt?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void showUsage(char *prog) {
printf("Usage for %s...", prog);
}
int main(int argc, char *argv[]) {
if (argc == 1) {
showUsage(argv[0]);
return EXIT_FAILURE;
}
int c;
char *input, *output;
for (c = 0; c < argc; ++c) {
if (strcmp((char *)argv[c], "-i")) {
input = (char *)argv[c + 1];
}
if (strcmp((char *)argv[c], "-o")) {
output = (char *)argv[c + 1];
}
}
printf("\nInput %s Output: %s", input, output);
return EXIT_SUCCESS;
}
Quel est votre problème? Qu'attendez-vous pour un intrant donné? Qu'avez-vous observé? – Gerhardh
Veuillez créer [MCVE] (https://stackoverflow.com/help/mcve) –
Vous devriez commencer par 'c = 1', puisque' argv [0] 'est le nom du programme, pas un argument. – Barmar