View Full Version : [C] passare in line command un numero di argomenti non noto
tecno789
07-02-2012, 14:43
Salve, in pratica devo fare un programmino stupido che mi permetta di concatenare il contenuto dei file e metterlo nell'output. Ora, se il numero degli argomenti è noto a priori, no problem, riesco facilmente, ma se non lo è?? come faccio a passare argomenti di numero variabile, esempio una volta passo 3 arg, una volta 5 arg, una volta 2 arg ecc...
grazie
clockover
07-02-2012, 15:59
Glie li passi e basta dato che il il main ha due parametri
int main(int argn , char ** argp)
dove argn è il numero di parametri passati da linea di comando... non dimenticare che il primo parametro è il nome dell'eseguibile
tecno789
07-02-2012, 17:58
io lo scrivo così :
int main(int argc, char **argv)
comunque non è questo il problema, è che per ogni parametro dev'essere associato un ipotetico file.
ad esempio:
ad argv[1]="ciao.txt"
ad argv[2]="ciao1.txt"
ecc...
capito? in pratica quei parametri che devo passare sono dei file, e il numero non è noto a priori, questo causa il fatto che non posso assegnare il puntatore a ciascun argomento.....:confused:
pabloski
07-02-2012, 18:33
Mmm e quale sarebbe il problema? Tu passi tutti i tuoi nomi di file al programma. Argc-1 ti dice quanti parametri hai e
for (i=1; i<argc; i++) printf("Nome file: %s", argv[i]);
Perchè dovresti essere tu ad assegnare i valori all'array argv? E' il contrario.
tecno789
07-02-2012, 20:17
Mmm e quale sarebbe il problema? Tu passi tutti i tuoi nomi di file al programma. Argc-1 ti dice quanti parametri hai e
for (i=1; i<argc; i++) printf("Nome file: %s", argv[i]);
Perchè dovresti essere tu ad assegnare i valori all'array argv? E' il contrario.
no. forse non mi sono spiegato bene. non devo verificare i nomi o assegnarli. Devo passare i file con un numero non noto a priori.
per esempio una volta concateno due file, una volta cinque, una volta dieci, il programma deve essere sempre in grado di concatenare, indipendentemente dal numero di file.ù
p.s : risolto, si era una cavolata avevi ragione. ti ringrazio
al prossimo
vBulletin® v3.6.4, Copyright ©2000-2026, Jelsoft Enterprises Ltd.