Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2008
    Messaggi
    81

    [C] Passare argv a una funzione

    Ciao ragazzi..
    vorrei passare argv a una funzione per lavrare su essa
    ad esempio vorrei semplicemente stampare ciò che introduco dala riga di comando:
    C:\desktop>echo.exe ciao
    ciao

    premetto che lo so fare svlgendo tutto dentro ilmain,il problema nasce se voglio svolgerlo in una funzione..
    codice:
    #include<stdio.h>
    void rempi(char[][],char []);
    main(int argc,char*argv[])
    {
    ....
    riempi(argv[1],pattern);
    }
    
    void riempi(char pat[][10],char pattern[])
    {
         int g,p;
         for(g=0,p=0;pat[1][g]!='\0';g++,p++)
               pattern[p]=pat[1][g];
          pattern[p]='\0';
          printf("%s\n",pattern);
    }
    L'errore in fase di compilazione è:
    conflicting types for 'riempi'

    grazie in anticipo

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,464
    Dato che argv e' dichiarato

    char *argv[]

    deve essere cosi' nella funzione, quindi

    void riempi(char *pat[],char pattern[])

    e lo devi passare con il suo nome

    riempi(argv, pattern);
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2008
    Messaggi
    81
    Quindi intendi dire:
    codice:
    #include<stdio.h>
    void rempi(char*[],char []);
    main(int argc,char*argv[])
    {
    ....
    riempi(argv,pattern);
    }
    
    void riempi(char *pat[],char pattern[])
    {
         int g,p;
         for(g=0,p=0;pat[1][g]!='\0';g++,p++)
               pattern[p]=pat[1][g];
          pattern[p]='\0';
          printf("%s\n",pattern);
    }
    perchè così continua a non funzionare..

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,464
    Definisci "continua a non funzionare " con codice e messaggio d'errore ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2008
    Messaggi
    81
    Il codice è lo stesso,te l'ho mandato nel post sopra..
    l'errore è sempre lo stesso,a livello di compilazione:
    conflicting types for'riempi'

    cioè anche con le modifiche che mi hai detto di fare non è cambiato nulla..

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,464
    Originariamente inviato da maurymg
    Il codice è lo stesso,te l'ho mandato nel post sopra..
    l'errore è sempre lo stesso,a livello di compilazione:
    conflicting types for'riempi'

    cioè anche con le modifiche che mi hai detto di fare non è cambiato nulla..
    Beh ... il problema non e' nel primo parametro ma, probabilmente, nel secondo ...

    Posta tutto il codice della funzione e del main in maniera che possa compilarlo interamente e controllare dove e' l'errore ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2008
    Messaggi
    81
    niente grazie,ho risolto..
    era un semplice errore di scrittura,con le modifiche che mi hai inviato compila perfettamente..

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,464
    Aveva a che fare con questo errore

    void rempi(char*[],char []);


    ?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Utente di HTML.it
    Registrato dal
    Jan 2008
    Messaggi
    81
    si avevo scritto:
    void rempi(char *[],char[]);

    invece di:
    void riempi(char *[],char[]);


  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,464
    Gia' ... me ne sono accorto dopo ... un consiglio ... per evitare problemi nelle dichiarazioni, dato che sono programmi semplici, NON inserire le dichiarazioni stesse ...

    Basta che scrivi le tue funzioni PRIMA che vengano utilizzate ... in pratica, scrivile PRIMA del main (lascia il main per ultimo nel tuo sorgente) ...

    codice:
    #include <stdio.h>
    
    void riempi(char *pat[], char pattern[])
    {
     ...
    }
    
    main(int argc,char*argv[])
    {
     ....
     riempi(argv, pattern);
    }
    No MP tecnici (non rispondo nemmeno!), usa il forum.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.