Demande aide pour une erreur de debutant

Fermé
ITIZBACK - 6 oct. 2014 à 00:05
 gnugo - 6 oct. 2014 à 11:44
Bonsoir,

Voila, je suis entré a epitech lundi, je rame un peu pour comprendre la logique, je viens donc poser une question ici.
J'ai fais un petit progarmme pour m'entrainer, qui divise b par c.
Je compil, mais je n'affiche pas le resultat.
En premiere année a epitech, on a pas le droit a printf et j'ai volontairement mis le main et le my putchar pour m'entrainer dans le prog.
Je precise que ce n'est pas un exercice donné par l'ecole, mais bien un programme useless pour m'habituer a coder, vous pouvez donc me donner la reponse, si le coeur vous en dit ofc sans vous en vouloir^^; et bien sur m'expliquer toujours si le coeur vous en dit.
Voila mon code :

int my_putchar(int i)
{
write(1, &i, 1);
return (0);
}

int Calcul(int b, int c)
{
int i;

i = b / c;

{
my_putchar(i);
}

return (0);
}

int main()
{
Calcul(80, 8);
Printf ("%d\n", i);
return (0);
}

je suis conscient que la connerie va vous sembler evidante, mais bon je me ferais moins insulter ici que sur JVC^^
Merci d'avance, Etienne

2 réponses

Euuu merde, oui le printf c'est parceque je n'arrivai pas a afficher par my_putchar, mais je ne dois pas m'en servir
0
Salut,

Je pense que l'erreur vient de la fonction write, à qui tu passes en 2ème paramère l'adresse d'un entier alors qu'il attend une chaine de caractères.
Donc si tu veux absolument utiliser write pour afficher les caractères "10" il faut d'abord convertir l'entier 10 en chaine de caractères "10".
Mais sinon printf fait ça très bien.

ssize_t write(int fd, const void *buf, size_t nbytes);
buf : It points to a character array, which can be used to store content obtained from the file pointed to by fd.


#include <stdio.h>
#include <unistd.h>
int my_putchar(int i)
{
printf("%d\n",i);
return (0);
}
int Calcul(int b, int c)
{
int i;
i = b / c;
my_putchar(i);
return (0);
}

int main()
{
Calcul(80, 8);
return (0);
}
~
0