2017-01-18 2 views
-2

Je viens d'écrire un programme C et j'aimerais savoir comment interagir avec le terminal. Mon programme se compose d'une fonction qui est vide et tout ce que j'ai inclus dans la principale est la suivante:Comment interagir dans le terminal avec le programme C Je viens d'écrire

int main(int argc, const char * argv[]) { 

    int arg; 
    for (arg = 0; arg < argc; ++arg) 
    { 
     printf("Arg %d is %s\n", arg, argv[arg]); 
    } 

    return 0; 
} 

Mon tête de fonctions est void conv(int decimal, int y);.

Donc, quelqu'un pourrait-il me donner quelques instructions simples sur la façon de faire des conversions sur le terminal sur mon Mac? Je suis nouveau à C et de l'aide serait grandement appréciée.

+0

Où est le code de 'conv()'? Qu'est ce que ça fait? Où l'appelez-vous? – DyZ

+1

En supposant que vous avez enregistré votre programme dans un fichier appelé 'printargs.c', vous le compilez d'abord en utilisant la ligne de commande' cc -o printargs printargs.c'. Ensuite, vous pouvez exécuter votre programme en utilisant la ligne de commande './printargs pour en savoir plus sur un autre argument. –

+0

Votre code actuel pourrait être compilé dans un programme 'arglist', et au terminal, vous pourriez l'exécuter en tant que' ./arglist arg1 'le deuxième' 'c'est le troisième.' 'Et vous obtiendriez 4 lignes de sortie (un nom de programme et 3 arguments). Comment vous intégrez 'conv()' dans votre programme est à vous. Il existe des fonctions de bibliothèque standard pour convertir des chaînes en nombres - 'strtol()' de '' et ses parents, par exemple. –

Répondre

0

Supposons que votre fichier de programme est appelé your_program.c, puis tapez la commande compilation:

gcc your_program.c -o your_program 

dans le terminal et entrez. Ensuite, exécutez le programme:

./your_program arg1 arg2... 

Exactement, quelle est votre question spécifique? J'espère que ma réponse vous aidera.

+0

Ma question spécifique était "donné la fonction que j'ai (conv. Avec type de retour void) qui accepte 2 arguments entiers, que dois-je taper dans mon main pour que la fonction soit implémentée avec argv [1] et argv [2] ". Par exemple je serais en tapant ./main 8 2 et voudrait que les 8 et 2 soient passés par la fonction conv. – Daniel

+0

argv [1] et argv [2] sont des chaînes, vous devez donc utiliser atoi() ou strtol() pour convertir argv [1] et argv [2] en entiers, puis les passer à votre fonction conv(). –

+0

Parfait exactement ce que j'avais besoin de savoir merci !!! – Daniel