View Full Version : [C] lettura parametro argv[0]
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 :)...
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.
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 ...
ok ora ho capito grazie a tutti per le risposte :)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.