Ciao a tutti ragazzi, devo scrivere una semplice funzione che, invocata dalla shell con un numero di parametri variabili, mi stampi tutti i parametri.
Il concetto è abbastanza semplice, diciamo che l'invocazione di
"fun par1 par2 par3"
sulla shell, mi comporta un output così:
par1
par2
par3
So bene che potrei utilizzare una funzione che preveda l'uso di un intero che mi dica quanti parametri immetto, e un puntatore ad un vettore di stringhe che contiene i parametri, quindi:
void fun(int n, char** arg_list);
ma io vorrei fare esperienza con le funzioni offerte dalla libreria stdarg.h . Qualcuno potrebbe darmi qualche suggerimento su come procedere? La prima versione di questa funzione è questa:
codice:
#include <stdio.h>
#include <stdarg.h>
void main(int n, char* first, ...){
va_list ap;
char *copy=NULL, *copy1 = NULL;
if(n>=1){
va_start(ap, first);
copy = va_arg(ap, char*);
copy1 = va_arg(ap, char*);
printf("%s\n", copy);
printf("%s\n", copy1);
va_end(ap);
}
return;
}
L'ho scritta in modo che prenda in ingresso solo 2 parametri, solo per provare, ma produce un output incomprensibile...Mi dareste una mano? Grazie, confido in voi!