Note

In C, la funzione main() può accettare due parametri opzionali:

int main(int argc, char *argv[])
  • argc (argument count) è un intero che indica il numero di argomenti passati al programma, incluso il nome dell’eseguibile.
  • argv (argument vector) è un array di stringhe (char*), in cui ogni elemento rappresenta un argomento passato da riga di comando.

Il primo elemento argv[0] è sempre il nome dell’eseguibile, mentre gli argomenti successivi sono quelli forniti dall’utente.

Example

#include <stdio.h>
 
int main(int argc, char *argv[]) {
  printf("Numero di argomenti: %d\n", argc);
  
  for (int i = 0; i < argc; i++) {
  	printf("Argomento %d: %s\n", i, argv[i]);
  	}
  	
  	return 0;
  	 }
  	 ```
  	
  	 **Esecuzione da terminale:**
  	
  	 ```
  	 ./programma arg1 arg2 arg3
  	 ```
  	
  	 **Output:**
  	
  	 ```
  	 Numero di argomenti: 4
  	 Argomento 0: ./programma
  	 Argomento 1: arg1
  	 Argomento 2: arg2
  	 Argomento 3: arg3
  	 ```

Conversione di Argomenti Numerici

Note

Poiché argv è un array di stringhe (char*), se gli argomenti devono essere usati come numeri, devono essere convertiti con funzioni come atoi() o strtol().

Example

#include <stdio.h>
#include <stdlib.h>
 
int main(int argc, char *argv[]) {
  if (argc < 3) {
  	printf("Uso: %s numero1 numero2\n", argv[0]);
  	return 1;
  	}
  	
  	int num1 = atoi(argv[1]);  // Converte il primo argomento in intero
  	int num2 = atoi(argv[2]);  // Converte il secondo argomento in intero
  	
  	printf("Somma: %d\n", num1 + num2);
  	return 0;
  	 }
  	 ```
  	
  	 **Esecuzione:**
  	
  	 ```
  	 ./programma 5 10
  	 ```
  	
  	 **Output:**
  	
  	 ```
  	 Somma: 15
  	 ```