Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    [C] Problemi con la riga di comando

    Ho scritto questo codice:
    codice:
    #include <stdio.h>
    #include <stdlib.h>
    
    int main(int argc, char *argv[]) {
     if(argv[1]=="c")
      printf("Ciao!!!!");
     else
      printf("Errore 123...");
    }
    ho fato partire il suo compilato chiamato prova.exe in questo modo:
    codice:
    C:\>prova.exe c
    Mi stampa a video:
    codice:
    Errore 123....
    perchè????
    eppure "argv[1]" è uguale a "c"!!!!

    Come faccio a farlo funziare???

    Grazie
    P.

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    4
    Di norma le stringhe NON si confrontano con == ...
    Se non per i caratteri ma non usare i doppi apici.

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    2,894
    #include <stdio.h>
    #include <stdlib.h> //Questo credo che non serva neanche...

    int main(int argc, char *argv[]) {
    if(argv[0] == 'c')
    printf("Ciao!");
    else
    printf("Errore!");
    }

    La numerazione degli array parte da ZERO...

  4. #4
    argv[0] è il nome del programma:

    mentre argv[1] è il primo parametro!!!!

    Cmq non mi accetta:
    ...argv[1]=='c'....

    Il compilatore mi dà errore!!!!
    P.

  5. #5
    :quote:

    GIUSTO!!!

    fai questa prova:
    codice:
    #include <stdio.h>
    
    void main(int argc, char * argv[]){
    		
    	printf("%s",argv[1]); //=NULL
    	
    	argv[1]="c";
    
    	if(argv[1]=="c"){
            printf("Ciao!!!!");
    	}
    	else{
            printf("Errore 123...");
    	}
    	printf("%s", argv[1]); //=c
        
    }
    ...Terrible warlords, good warlords, and an english song

  6. #6
    ?????????????????

    Non risolve comunque i miei problemi
    P.

  7. #7
    Utente di HTML.it L'avatar di wolf64
    Registrato dal
    Jul 2001
    Messaggi
    521
    Allora, quanto ti dice Johnny non ti risolve il problema "direttamente" ma è una verifica sulla funzionalità della funzione (Johnny correggimi se sbaglio),
    comunque una soluzione potrebbe essere nel codice che ti riporto qua sotto:

    codice:
    #include <stdio.h>
    
    main(int argc, char *argv[]) {
    
       if(strcmp(argv[1], "c")==0)
    	printf("\n\nCiao!!!\n\n");
       else
    	printf("\n\nError 123...\n\n");
    
    }
    Ho l'abitudine di mettere un po di '\n' per evidenziare bene l'output come vedi, ma non è questo il punto del problema

    Ciao
    Powered by Slack Current - Kernel 2.6.22
    Slackware Evangelist
    My LUG (Linux User Group): LinuxVar (LUG di Varese)

  8. #8
    Grazie Funzia alla perfezione!!!!!!
    P.

  9. #9
    x wolf
    ...Terrible warlords, good warlords, and an english song

  10. #10
    Utente di HTML.it L'avatar di wolf64
    Registrato dal
    Jul 2001
    Messaggi
    521
    Powered by Slack Current - Kernel 2.6.22
    Slackware Evangelist
    My LUG (Linux User Group): LinuxVar (LUG di Varese)

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.