Telefonino.net network
 
| 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 » |

Torna indietro   WinTricks Forum > Software > Programmazione

Notices

Rispondi
 
Strumenti discussione
Vecchio 19-06-2007, 01.21.17   #1
braian
Newbie
 
Registrato: 18-04-2007
Messaggi: 15
braian promette bene
[C/C++] Programma in C che legga variabili tipo -n -s

Salve a tutti, devo fare un programma in C per la scuola che mi deve leggere alcuni parametri passsati al momento dell' invocazione del programma così:

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 13.17.55
braian non è collegato   Rispondi citando
Vecchio 19-06-2007, 09.56.26   #2
Kjow
Gold Member
Top Poster
 
L'avatar di Kjow
 
Registrato: 04-01-2001
Loc.: Perugia
Messaggi: 3.797
Kjow promette bene
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
Kjow non è collegato   Rispondi citando
Vecchio 19-06-2007, 10.41.58   #3
erdaniele
Junior Member
 
Registrato: 16-05-2003
Messaggi: 156
erdaniele promette bene
Quota:
Inviato da braian
Salve a tutti, devo fare un programma in C per la scuola che mi deve leggere alcuni parametri passsati al momento dell' invocazione del programma così:

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!!

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.
erdaniele non è collegato   Rispondi citando
Vecchio 19-06-2007, 12.59.32   #4
LoryOne
Gold Member
WT Expert
 
Registrato: 09-01-2002
Loc.: None of your business
Messaggi: 5.502
LoryOne è un gioiello raroLoryOne è un gioiello raroLoryOne è un gioiello raro
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.
LoryOne non è collegato   Rispondi citando
Vecchio 19-06-2007, 13.31.42   #5
braian
Newbie
 
Registrato: 18-04-2007
Messaggi: 15
braian promette bene
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
braian non è collegato   Rispondi citando
Vecchio 19-06-2007, 13.42.32   #6
erdaniele
Junior Member
 
Registrato: 16-05-2003
Messaggi: 156
erdaniele promette bene
Quota:
Inviato da braian
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
Secondo puoi fare cosi':

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 ;
}
erdaniele non è collegato   Rispondi citando
Vecchio 19-06-2007, 17.15.31   #7
LoryOne
Gold Member
WT Expert
 
Registrato: 09-01-2002
Loc.: None of your business
Messaggi: 5.502
LoryOne è un gioiello raroLoryOne è un gioiello raroLoryOne è un gioiello raro
Quota:
Inviato da braian
... 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...
Devi provare per imparare.
atoi ha il suo "contrario" in itoa.
Qualcosa ti dice che "dietro le quinte" si lavora nel modo che hai menzionato.
LoryOne non è collegato   Rispondi citando
Rispondi


Utenti attualmente attivi che stanno leggendo questa discussione: 1 (0 utenti e 1 ospiti)
 
Strumenti discussione

Regole di scrittura
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is ON
Gli smilies sono ON
[IMG] è ON
Il codice HTML è OFF

Vai al forum

Discussioni simili
Discussione Autore discussione Forum Risposte Ultimo messaggio
Programma per DVD e uno di musica Sideral Masterizzazione Giochi Games 3 02-12-2006 17.08.07
Mi serve un programma tipo scandisk per riparare dei file mimmo77 Software applicativo 3 05-10-2006 12.37.11

Orario GMT +2. Ora sono le: 22.36.57.


E' vietata la riproduzione, anche solo in parte, di contenuti e grafica.
Copyright © 1999-2017 Edizioni Master S.p.A. p.iva: 02105820787 • Tutti i diritti sono riservati
L'editore NON si assume nessuna responsabilità dei contenuti pubblicati sul forum in quanto redatti direttamente dagli utenti.
Questi ultimi sono responsabili dei contenuti da loro riportati nelle discussioni del forum
Powered by vBulletin - 2010 Copyright © Jelsoft Enterprises Limited.