Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di braian
    Registrato dal
    Apr 2007
    Messaggi
    35

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

  2. #2
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,563
    Quelli sono argomenti della riga di comando, e si "gestiscono" usando dei parametri nel main
    codice:
    int main(int argn,char *argv[])
    il primo rappresenta il numero di argomenti passati + 1 ( lo stesso nome del programma è considerato un argomento ), mentre l'array di puntatori a char rappresenta i valori degli argomenti.
    "Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)

    "Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)

    http://xvincentx.netsons.org/programBlog

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2006
    Messaggi
    569
    Avrai nella stringa argv[1] il comando "-n";

    Per iniziare puoi verificare che *argv[1] sia '-', se non lo è scrivi un messaggio di errore.

    A questo punto ti basta leggere da questa stringa il valore di n con la sscanf.

    Piccolo esempio:

    codice:
    #include <stdio.h>
    #include <stdlib.h>
    
    int main (int argn,char *argv[])
    {
       int i=0;
       int numero=0;
       
       if ( *argv[1]!='-' )
          printf("\n Errore");
       
       else 
       {   
            sscanf(argv[1],"-%d",&numero);
            printf("\n\n Numero -> %d",numero);
            }    
    
       printf("\n");
       system("pause");
       return 0; 
    }
    Ciao Ciao

  4. #4
    Naturalmente per evitare errori esegui prima una controllo sul numero di parametri passati...
    Poi dovrebbero bastare le funzioni standard per il trattamento delle stringhe, strcmp soprattutto....
    Il c non consente di trattare gli errori in modo molto semplice ...
    Experience is what you get when you don’t get what you want

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.