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

    [C] scusate l'ignoranza

    ciao a tutti

    volevo fare un semplice progaramme che eseguendolo ...

    /programma.exe 3 4

    sommasse i numeri 3 e 4 restituendo il risultato..

    ------------------------- codice -----------------------------------------

    #include <stdio.h>

    int main(int primo, int secondo){

    int ris;

    ris = primo+secondo;

    printf("%i", ris);

    }

    ----------------------------------------------------------------------------

    solo che quando lo eseguo /Programma.exe 3 4

    mi restituisce 4013739

    al posto di 7!!!

    come mai???

  2. #2
    Non puoi dichiarare il main in quel modo... puoi dichiararlo solo come nell'esempio che segue ed effettuare il parsing delle stringhe passate sulla linea di comando.
    codice:
    #include <stdio.h>
    #include <stdlib.h>
    int main( int argc, char *argv[])
    {
        if(argc!=3)
        {
            printf("Devi passare due numeri interi sulla linea di comando.\n");
            return 1;
        }
        else
        {
            printf("%d\n",atoi(argv[1])+atoi(argv[2]));
            return 0;
        }
    }
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Diciamo che ti sei inventato una sintassi arbitraria per il metodo main che invece deve essere definito diversamente. La gestione dei parametri da command-line va fatta con argc e argv come indicato in tutti i libri sul linguaggio C.

    Edit: arrivo tardi...

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320

    Moderazione

    Ti invito ad utilizzare titoli più consoni nelle prossime discussioni.
    Questo lo sistemo io.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  5. #5
    cioe in pratica posso mettere
    un int e un array char puntatore???

    come faccio a fare la somma tra 2 int quindi??

  6. #6
    perche poi

    if(argc!=3)???

    perche proprio il 3??

  7. #7
    cioe in pratica posso mettere
    un int e un array char puntatore???
    perche proprio il 3??
    Anche queste domande trovano risposta su quasi tutti i libri sul C.

    L'elemento argv[0] è sempre presente e contiene il nome del programma, quindi per verificare se ci sono effettivamente DUE parametri devi testare la condizione argc == TRE.

    come faccio a fare la somma tra 2 int quindi??
    Come mostrato nell'esempio di MItaly.

  8. #8
    cosa significa * davanti ad argv[] ???

  9. #9
    Significa che argv è un array di puntatori a char.
    In ogni caso l'utilizzo degli argomenti del main è uno dei primi argomenti di qualunque manuale di C...
    Amaro C++, il gusto pieno dell'undefined behavior.

  10. #10
    ma l' * si mette solo quando lo dichiari .. giusto??

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.