Programme nom
Fermé
amn
-
18 sept. 2013 à 07:57
juliencolin54 Messages postés 217 Date d'inscription dimanche 22 juillet 2012 Statut Membre Dernière intervention 1 octobre 2013 - 18 sept. 2013 à 16:58
juliencolin54 Messages postés 217 Date d'inscription dimanche 22 juillet 2012 Statut Membre Dernière intervention 1 octobre 2013 - 18 sept. 2013 à 16:58
11 réponses
juliencolin54
Messages postés
217
Date d'inscription
dimanche 22 juillet 2012
Statut
Membre
Dernière intervention
1 octobre 2013
55
18 sept. 2013 à 10:49
18 sept. 2013 à 10:49
Bonjour,
Tu as beaucoup de modifications à faire, et de choses à apprendre, à mon avis.
Dans l'ordre :
1. Si tu déclares un
En effet, il faut déclarer
2. Tu appelles ta fonction comme ceci
Tu dois donc l'appeler comme ceci :
3. Ta fonction
4.
5. Ajoute un
Il n'est pas primordial pour ton programme, mais est utile pour le terminal qui lance ton programme, ainsi il sait si ton code s'est bien exécuté ou pas.
N'hésites pas si tu as besoin d'aide,
Cdlt.
Tu as beaucoup de modifications à faire, et de choses à apprendre, à mon avis.
Dans l'ordre :
1. Si tu déclares un
int main(void), tu ne pourra pas récupérer le nom du programme.
En effet, il faut déclarer
int main(int ac, char **av)pour pouvoir accéder au nom de ton programme qui se trouve dans av[0]
2. Tu appelles ta fonction comme ceci
ft_putchar;alors qu'elle est sensé prendre un paramètre (un caractère) et l'afficher à l'écran.
Tu dois donc l'appeler comme ceci :
ft_putchar('A');(pour afficher un a majuscule à l'écran
3. Ta fonction
int name (void)n'est appelée nulle part dans ton code.
4.
'name'est différent de
"name", ils désignent respectivement un caractère et une chaîne de caractères.
5. Ajoute un
return 0;à la fin de ton main().
Il n'est pas primordial pour ton programme, mais est utile pour le terminal qui lance ton programme, ainsi il sait si ton code s'est bien exécuté ou pas.
N'hésites pas si tu as besoin d'aide,
Cdlt.
Salut ! Je te remercie pour ta reponse, je ne suis pas sur d avoir tout bien saisi j ai tester comme ceci, je me doute qu il doit y avoir pas mal d erreurs mais je fais plusieurs test je finirais bien par comprendre...
pour le *k j ai essayer de faire un pointeur que l on va rappeler pour afficher le nom de la fonction est ce bon ? Par contre j ai du mal a le mettre correctement en forme.
#include <unistd.h>
int ft_putchar(char c)
{
write(1, &c, 1);
return (0);
}
int main (int *k)
{
ft_putchar;
return (0);
}
int name (int *k)
{
*k = name;
ft_putchar(k);
return (0);
}
pour le *k j ai essayer de faire un pointeur que l on va rappeler pour afficher le nom de la fonction est ce bon ? Par contre j ai du mal a le mettre correctement en forme.
#include <unistd.h>
int ft_putchar(char c)
{
write(1, &c, 1);
return (0);
}
int main (int *k)
{
ft_putchar;
return (0);
}
int name (int *k)
{
*k = name;
ft_putchar(k);
return (0);
}
juliencolin54
Messages postés
217
Date d'inscription
dimanche 22 juillet 2012
Statut
Membre
Dernière intervention
1 octobre 2013
55
Modifié par juliencolin54 le 18/09/2013 à 13:54
Modifié par juliencolin54 le 18/09/2013 à 13:54
Relis les points 1 et 2 que je t'ai donné, je te donne le code en plus.
Ce n'est qu'un simple copier/coller pour corriger ces erreurs là.
Sinon, à quoi sert ta fonction name ?
Est-ce que tu veux afficher le nom de la fonction ou le nom du programme ?
Est-ce que tu connais les boucles while ?
Software is like sex, it's better when it's free - Linus Torvald
Ce n'est qu'un simple copier/coller pour corriger ces erreurs là.
Sinon, à quoi sert ta fonction name ?
Est-ce que tu veux afficher le nom de la fonction ou le nom du programme ?
Est-ce que tu connais les boucles while ?
Software is like sex, it's better when it's free - Linus Torvald
C est pour afficher le nom du programme, j ai mis name justement pour cela ce n est pas necessaire ? Avec main c est suffisant ? Oui je connais les boucles je dois m en servir ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
juliencolin54
Messages postés
217
Date d'inscription
dimanche 22 juillet 2012
Statut
Membre
Dernière intervention
1 octobre 2013
55
18 sept. 2013 à 14:26
18 sept. 2013 à 14:26
Le nom de ton prgramme se situe ici :
Ta fonction ft_putchar permet d'afficher un caractère à l'écran, tu peut l'essayer comme ceci :
Ce qu'il te manque, c'est une fonction pour afficher une chaîne de caractère à l'écran, et non pas un seul caractère.
int main(int ac, char **av)
{
char *prog_name;
prog_name = av[0];
// Ici , av[0] ou prog_name valent le nom de ton programme
return (0);
}
Ta fonction ft_putchar permet d'afficher un caractère à l'écran, tu peut l'essayer comme ceci :
int ft_putchar(char c)
{
write(1, &c, 1);
return (0);
}
int main(int ac, char **av)
{
char *prog_name;
prog_name = av[0];
// Ici , av[0] ou prog_name valent le nom de ton programme
ft_putchar('A'); // imprime le caractère 'A' a l'ecran
return (0);
}
Ce qu'il te manque, c'est une fonction pour afficher une chaîne de caractère à l'écran, et non pas un seul caractère.
A quoi correspondent exactement ac et av ? Et pourquoi il y a deux etoile devant av ?
Une fonction pour afficher une chaine de caractere ? comme celle de ft_putchar ? Si je met ft_putchar("nomduprogramme") ce n est pas bon ?
Une fonction pour afficher une chaine de caractere ? comme celle de ft_putchar ? Si je met ft_putchar("nomduprogramme") ce n est pas bon ?
juliencolin54
Messages postés
217
Date d'inscription
dimanche 22 juillet 2012
Statut
Membre
Dernière intervention
1 octobre 2013
55
18 sept. 2013 à 15:13
18 sept. 2013 à 15:13
Pour ac et av, c'est assez bien expliqué ici : http://picolibre.int-evry.fr/projects/svn/coursc/Tex4Ht/Indexse44.html
Si t'as des question, n'hésites pas.
Comme je te l'ai dit ft_putchar() ne prend qu'un caractère et non pas une chaîne de caractère !
Pour afficher une chaîne de caractère, il faut que tu fasses une boucle sur celle-ci, et appeler ft_putchar() avec chaque caractère de ta chaîne.
Si t'as des question, n'hésites pas.
Comme je te l'ai dit ft_putchar() ne prend qu'un caractère et non pas une chaîne de caractère !
Pour afficher une chaîne de caractère, il faut que tu fasses une boucle sur celle-ci, et appeler ft_putchar() avec chaque caractère de ta chaîne.
juliencolin54
Messages postés
217
Date d'inscription
dimanche 22 juillet 2012
Statut
Membre
Dernière intervention
1 octobre 2013
55
18 sept. 2013 à 16:24
18 sept. 2013 à 16:24
Fais un effort, compile au moins ton code.
Il manque des accolades de fonction, ta boucle while non plus n'a pas d'accolades et vu qu'elle a un ";" juste derrière, c'est une boucle infinie...
Je te conseille d'aller lire des cours de C car on y arrivera jamais si tu ne sais pas faire une boucle while :/
Il manque des accolades de fonction, ta boucle while non plus n'a pas d'accolades et vu qu'elle a un ";" juste derrière, c'est une boucle infinie...
Je te conseille d'aller lire des cours de C car on y arrivera jamais si tu ne sais pas faire une boucle while :/
juliencolin54
Messages postés
217
Date d'inscription
dimanche 22 juillet 2012
Statut
Membre
Dernière intervention
1 octobre 2013
55
18 sept. 2013 à 16:58
18 sept. 2013 à 16:58
Dans ce cas met les ça coute pas grand chose !
Dans l'esprit c'est ça, sauf que tu initialise ton k à 0, et que dans ta boucle tu dis "tant que k supérieur à 0", donc ça ne passe pas dans le while.
Dans l'esprit c'est ça, sauf que tu initialise ton k à 0, et que dans ta boucle tu dis "tant que k supérieur à 0", donc ça ne passe pas dans le while.