Sei sulla pagina 1di 8

DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA

Fondamenti di Informatica

Argomenti da riga di comando


Argomenti da riga di comando
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA

• Quando si invoca un programma da riga di comando molte


volte specifichiamo degli argomenti
§ Es: gcc ciao.c -o ciao
• Il nome dell’eseguibile invocato è gcc
• Il resto del comando è composto da una lista di stringhe separate
da spazi che rappresentano gli argomenti specificati durante
l’invocazione
• Gli argomenti rappresentano i parametri in ingresso per
l’esecuzione del programma invocato

2
Programmi con argomenti in C
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA

• In C, per creare un eseguibile a cui sia possibile passare


argomenti è necessario definire il prototipo del main così:
int main(int argc, char *argv[])
• argc contiene il numero di argomenti con cui il programma
viene lanciato (incluso il nome stesso del programma)
• argv è un array di stringhe che contiene tutti gli argomenti
con cui il programma viene lanciato
§ Più precisamente argv rappresenta un array di puntatori a char
(cioè un doppio puntatore) dove ciascuno dei puntatori punta ad una
stringa
§ argv[0] contiene il nome completo dell’eseguibile lanciato, con
eventuale percorso

3
Esempio di uso degli argomenti
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA

• Scrivere un programma che riceve come argomenti un


numero intero N ed una stringa S. Il programma visualizza
prima il nome dell’eseguibile e poi N volte la stringa S
Prototipo del main con i parametri
#include<stdio.h>
Controllo che il numero degli
int main(int argc, char *argv[]){ argomenti ricevuti sia corretto
int n, i;
if(argc==3){ Conversione della stringa
n=atoi(argv[1]); argv[1] in un intero usando
printf("%s\n", argv[0]); l’apposita funzione di libreria
for(i=0; i<n; i++)
printf("%s\n", argv[2]); Utilizzo degli argomenti
}else{
printf("Errore nella specifica dei parametri\n");
}
return 0;
}

4
es
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA

(6pti) Scrivere un sottoprogramma verifica che ricevuta in ingresso una stringa che
contiene una password, restituisce 1 se sono verificate tutte le condizioni seguenti, 0
altrimenti:
• sono presenti almeno due cifre
• non contiene quattro caratteri uguali consecutivi
• è di almeno 8 caratteri
• è presente almeno un lettera maiuscola

(1 pto) Scrivere un programma che acquisisce da riga di comando la password, chiama


il sottoprogramma verifica e visualizza se la password è valida (1) oppure no (0).

5
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA

#include<stdio.h>
int verifica(char * str);

int main(int argc, char * argv[]){


if(argc > 1) {
if(verifica(argv[1])){
printf( "tutte le condizioni verificate per %s", argv[1]);
} else
printf("ERRORE su %s\n", argv[1]);
}
else
printf("psw non inserita\n");
return 0;
}
esercizi
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA

• Scrivere un programma che legge un intero da un file e lo


scrive su file: il nome dei file sono passati al programma come
argomenti.

7
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA

int main(int argc, char *argv[]) {


int x;
FILE *fdl, *fdw;

if(argc ==3) {
fdl=fopen(argv[1], "r");
if( fdl ) {
fscanf(fdl, "%d\n",&x);
fclose(fdl);
}
else { printf("Errore in apertura del file di lettura\n");
}
fdw=fopen(argv[2], "w");
if( fdw) {
fprintf(fdw, "%d\n", x);
fclose(fdw);
}
else { printf("Errore in apertura del file di scrittura\n");
}
}
else
{printf("Numero di argomenti non corretto\n");}
return 0;
}

Potrebbero piacerti anche

  • Architettura Macchina
    Architettura Macchina
    Documento51 pagine
    Architettura Macchina
    Dali Zheng
    Nessuna valutazione finora
  • File 2021
    File 2021
    Documento24 pagine
    File 2021
    Dali Zheng
    Nessuna valutazione finora
  • File 2021
    File 2021
    Documento24 pagine
    File 2021
    Dali Zheng
    Nessuna valutazione finora
  • Strutture Controllo-Iterazione
    Strutture Controllo-Iterazione
    Documento11 pagine
    Strutture Controllo-Iterazione
    Dali Zheng
    Nessuna valutazione finora
  • File 2021
    File 2021
    Documento24 pagine
    File 2021
    Dali Zheng
    Nessuna valutazione finora
  • Compatibilità Tra Tipi
    Compatibilità Tra Tipi
    Documento11 pagine
    Compatibilità Tra Tipi
    Dali Zheng
    Nessuna valutazione finora
  • Allocazione Dinamica
    Allocazione Dinamica
    Documento10 pagine
    Allocazione Dinamica
    Dali Zheng
    Nessuna valutazione finora
  • Array e For
    Array e For
    Documento19 pagine
    Array e For
    Dali Zheng
    Nessuna valutazione finora
  • Intro C
    Intro C
    Documento51 pagine
    Intro C
    Dali Zheng
    Nessuna valutazione finora
  • Informatica
    Informatica
    Documento1 pagina
    Informatica
    Dali Zheng
    Nessuna valutazione finora
  • Array e For
    Array e For
    Documento19 pagine
    Array e For
    Dali Zheng
    Nessuna valutazione finora