PDA

View Full Version : [C] lettura parametro argv[0]


Re_Kotc
17-07-2008, 17:52
ciao a tutti, oggi ho fatto alcune prove con la la lettura di parametri da riga di comando, per cui dovendo leggere l'argomento argv[1] come intero per poi passarlo ad una funzione ho scritto :

int n;

n = atoi(argv[1]);

fin qui tutto chiaro...
ma se invece volessi fare una cosa tipo

n = (int) (*argv[1]);

non avrebbe senso? Mi da errore ma non capisco i motivi...chiedo un'illuminazione :)...

peppepz
17-07-2008, 20:14
La scrittura che hai proposto tu significa: prendi l'elemento 1 di argv (che è un puntatore a carattere), dereferenzialo (cioè prendi il carattere a cui punta) e consideralo un intero (che in C si può fare, perché i caratteri sono considerati degli interi piccoli).
Il risultato non sarà la conversione della stringa in intero, ma la conversione in intero del valore ASCII (diciamo) del carattere. Per eseguire la conversione, devi eseguire per forza una funzione appropriata come atoi.

Re_Kotc
23-07-2008, 15:33
mi scuso per il ritardo nella risposta...ma ho avuto qualche problemino a connettermi...cmq non ho capito una cosa ..ma allora dato che argv (se non sbaglio) è un array di puntatori a carattere, con argv[1] anche se a runtime passo come argomento 5 cioè un numero, lui lo vede come carattere?,

marko.fatto
23-07-2008, 16:10
si e te lo devi convertire in numero..

lorenzo001
23-07-2008, 16:14
mi scuso per il ritardo nella risposta...ma ho avuto qualche problemino a connettermi...cmq non ho capito una cosa ..ma allora dato che argv (se non sbaglio) è un array di puntatori a carattere, con argv[1] anche se a runtime passo come argomento 5 cioè un numero, lui lo vede come carattere?,

Tutti i dati inseriti da linea di comando sono sempre e comunque sequenze di caratteri ... anche se ci sono delle cifre ...

Re_Kotc
23-07-2008, 17:02
ok ora ho capito grazie a tutti per le risposte :)