|
| HOMEPAGE | INDICE FORUM | REGOLAMENTO | ::. | NEI PREFERITI | .:: | RSS Forum | RSS News | NEWS web | NEWS software | |
| PUBBLICITA' | | | ARTICOLI | WIN XP | VISTA | WIN 7 | REGISTRI | SOFTWARE | MANUALI | RECENSIONI | LINUX | HUMOR | HARDWARE | DOWNLOAD | | | CERCA nel FORUM » | |
19-06-2007, 00.21.17 | #1 |
Newbie
Registrato: 18-04-2007
Messaggi: 15
|
[C/C++] Programma in C che legga variabili tipo -n -s
mioprogramma -n dove deve essere un numero interoche mi serve come variabile da utilizzare alli'interno del programma. CHIEDO AIUTO per sapere secondo voi qual'è la via più semplice per trattare il problema nel senso che forse ci sono funzioni che creano una stringa con i caratteri successivi all '-' (GETOPT non ho capito bene come funzioni) e poi credo che vada convertita a intero (atoi??) ma avrei bisogno di un po' di aiuto su come poter trattare eventuali situazioni di errore come nel caso che trovi una lettera tra i numeri o altro (se poi mi chiarite anche come funziona il trattamento di errore in C ve ne sono garto perchè ERRNO non sobene come funzioni). Intanto ringrazio fin da ora chi si fa avanti!! HO MODIFICATO INSERENDO IL TAG DEL C SPERO VADA BENE Ultima modifica di braian : 19-06-2007 alle ore 12.17.55 |
19-06-2007, 08.56.26 | #2 |
Gold Member
Top Poster
Registrato: 04-01-2001
Loc.: Perugia
Messaggi: 3.797
|
Per favore, modifica il topic del thread in base al regolamento , altrimenti mi trovo costretto a chiudere il thread.
Ciao e grazie.
___________________________________
S.: A, ui, ue, la fortuna viene a me; ui, ue, ua, la fortuna viene qua. F.: A, ue, ui, la fortuna non va lì. Mi scusi... Mercatino Usato |
19-06-2007, 09.41.58 | #3 | |
Junior Member
Registrato: 16-05-2003
Messaggi: 156
|
Quota:
1° problema: void main(int argc,char **argv); int Numero degli argomenti della riga di comando, compreso il nome del programma. argv char ** Indirizzo dell'array di stringhe rappresentanti ciascuna un parametro della riga di comando. La prima stringa è il nome del programma completo di pathname se l'esecuzione avviene in una versione di DOS uguale o successiva alla 3.0, altrimenti contiene la stringa "C". L'ultimo elemento dell'array è un puntatore nullo. 2° problema : Conversioni da stringhe a numeri - Le funzioni atoi e atof Per convertire una stringa in un numero, la via più semplice è usare le funzioni di libreria (del C) atoi e atof : atoi(argomento), dove argomento è una stringa contenente la rappresentazione decimale di un numero intero, esegue la conversione di argomento e restituisce un valore di tipo int atof(argomento), dove argomento è una stringa contenente la rappresentazione decimale di un numero floating (in notazione normale o esponenziale), esegue la conversione di argomento e restituisce un valore di tipo double Entrambe le funzioni vanno utilizzate includendo l'header-file: <stdlib.h> 3° problema: ErrNo. E una variabile contenente l'errore verificatosi durante l'accesso ad un flusso di dati ( file ) . xEs. fd = open( "data.txt", O_WRONLY | O_CREAT, S_IRUSR | S_IWUSR ); if( fd == - 1 ) { printf( "%s\n", strerror( errno ) ); exit( -1 ); la funzione strerror restituisce la descrizione dell' errore. Spero di esserTi stato utile. |
|
19-06-2007, 11.59.32 | #4 |
Gold Member
WT Expert
Registrato: 09-01-2002
Loc.: None of your business
Messaggi: 5.505
|
Se non sbaglio:
argc è argument count argv è argument value atoi ed atof significano ASCII to Integer ed ASCII to Float o Double che dir si volgia. Ad ogni modo si parla comunque di virgola mobile. |
19-06-2007, 12.31.42 | #5 |
Newbie
Registrato: 18-04-2007
Messaggi: 15
|
Potrei usare la funzione ATOI ma per creare una stringa dai numeri passati per parametro di modo da poter usare l' atoi appunto, devo leggere in sequenza tutto l' array di caratteri (es: -124 leggo -, 1 ,2, 4) controllando ogni volta che siano solo numeri e concatenando (come si fa?) i caratteri ogni volta o esiste qualcosa di più semplice?
Grazie comunque per le risp |
19-06-2007, 12.42.32 | #6 | |
Junior Member
Registrato: 16-05-2003
Messaggi: 156
|
Quota:
int i ; .... int main ( int argc , char **argv ) ; ... if ( argc < 2 ) { printf( "Non sono stati immessi parametri ! \n " ); exit ( 1 ) ; } else { i = atoi ( *argv [ 2 ] ) ; printf ("Il primo parametro e' : %i \n" , i ) ; return i ; } |
|
19-06-2007, 16.15.31 | #7 | |
Gold Member
WT Expert
Registrato: 09-01-2002
Loc.: None of your business
Messaggi: 5.505
|
Quota:
atoi ha il suo "contrario" in itoa. Qualcosa ti dice che "dietro le quinte" si lavora nel modo che hai menzionato. |
|
Utenti attualmente attivi che stanno leggendo questa discussione: 1 (0 utenti e 1 ospiti) | |
Strumenti discussione | |
|
|
Discussioni simili | ||||
Discussione | Autore discussione | Forum | Risposte | Ultimo messaggio |
Programma per DVD e uno di musica | Sideral | Masterizzazione Giochi Games | 3 | 02-12-2006 16.08.07 |
Mi serve un programma tipo scandisk per riparare dei file | mimmo77 | Software applicativo | 3 | 05-10-2006 11.37.11 |