Résolu impossible du lancement sur cod blocks

forcela8

Membre
Inscription
24 Octobre 2015
Messages
120
Réactions
4
Points
611
RGCoins
25
bonjour, aujourd'hui j'ai testé le langage c tous est bien mais le seul problème ses que quand je le lance il me dit windows a un porblème etc et donc je suis bien sur la version 16.01 si je me souviens et donc le tuto que je regarde est sur cod blocks mais sur la version 13.12 et le problème sait que quand je lance mon code et donc m'affiche pas du tout le résultat que je veux. J'ai regardé plein de fois si mon code était bine et oui aucun défaut en tout cas je pense. Je vous met mon codage et je vous met url du tuto si vous trouvez un défaut dite le moi svp. Voila :

et mon codage:
Code:
#include <stdio.h>
#include <stdlib.h>

int my_putchar(char c)
{
    write (1, &c, 1);
}

int my_putstr (char *str)
{
int i;

i = 0;

while (str != '/0')
{
    my_putchar(str);
     i = i + 1;
}

}
int main()
{
my_putstr("aze");
}

Merci de votre compréhension
 
Dernière édition par un modérateur:
Salut !
Ton my_putchar est de type int mais retourne rien, si ne tu veux rien retourner utilises void pour " rien " -> La fonction renvoi void -> La fonction renvoi rien
Ton my_putstr est de type int pareil pour my_putchar. De plus, tu utilises le pointeur str comme un char, utilises l'index i pour avoir accès aux éléments de ton tableau.
La définition de main est:
  1. int main(void)
  2. int main(int argc, char **argv)
  3. int main(int argc, char *argv[])
Dans ton cas donc, utilises la 1ère.
Et n'oublie pas le return dans le main.
Si tu as besoin de + d'aide, reply : )
 
Salut !
Ton my_putchar est de type int mais retourne rien, si ne tu veux rien retourner utilises void pour " rien " -> La fonction renvoi void -> La fonction renvoi rien
Ton my_putstr est de type int pareil pour my_putchar. De plus, tu utilises le pointeur str comme un char, utilises l'index i pour avoir accès aux éléments de ton tableau.
La définition de main est:
  1. int main(void)
  2. int main(int argc, char **argv)
  3. int main(int argc, char *argv[])
Dans ton cas donc, utilises la 1ère.
Et n'oublie pas le return dans le main.
Si tu as besoin de + d'aide, reply : )
ok donc si j'ai bien compris je doit remplacer my_putchar part int main (void) et my_putstr par int main ( char)? mais se que je n'est pas compris ses que cela reviens bine au même non int main (void) n'est normalement pas un pointeur donc comment cela peut remplacer my_... et la même chose pour my_puststr?.
Merci et bonne soirée

Salut !
Ton my_putchar est de type int mais retourne rien, si ne tu veux rien retourner utilises void pour " rien " -> La fonction renvoi void -> La fonction renvoi rien
Ton my_putstr est de type int pareil pour my_putchar. De plus, tu utilises le pointeur str comme un char, utilises l'index i pour avoir accès aux éléments de ton tableau.
La définition de main est:
  1. int main(void)
  2. int main(int argc, char **argv)
  3. int main(int argc, char *argv[])
Dans ton cas donc, utilises la 1ère.
Et n'oublie pas le return dans le main.
Si tu as besoin de + d'aide, reply : )
que veut dire aussi int main(int argc, char **argv) et int main(int argc, char *argv[])
 
Dernière édition par un modérateur:
Je te conseille d'apprendre les bases au lieu de commencer par les fonctions et chaines de caractères, tu mélanges tout.

ok donc si j'ai bien compris je doit remplacer my_putchar part int main (void) et my_putstr par int main ( char)? mais se que je n'est pas compris ses que cela reviens bine au même non int main (void) n'est normalement pas un pointeur donc comment cela peut remplacer my_... et la même chose pour my_puststr?.
Merci et bonne soirée
Alors non tu ne dois pas remplacer le nom de la fonction mais modifier son comportement.

que veut dire aussi int main(int argc, char **argv) et int main(int argc, char *argv[])
argc = le nombre d'arguments ( quand tu lance le programme )
argv est un tableau de tableau donc un tableau de chaine de caractères, qui lui contiendra les arguments.

Voici un exemple de ce que j'essaie de te dire:
Code:
#include <unistd.h>

void    ft_putchar(char c)
{
    write(1, &c, 1);
}

void    ft_putstr(const char *s)
{
    int i;

    i = 0;
    while (s[i] != '\0')
    {
        ft_putchar(s[i]);
        i++;
    }
}

int     main(void)
{
    ft_putchar('O');
    ft_putchar('k');
    ft_putchar('\n');
    ft_putstr("Texte\n");

    return (0);
}
 
ah ok je comprend mais comme on a changé le comportement de l'algorithme va t'il faire la meme chose?

Je te conseille d'apprendre les bases au lieu de commencer par les fonctions et chaines de caractères, tu mélanges tout.


Alors non tu ne dois pas remplacer le nom de la fonction mais modifier son comportement.


argc = le nombre d'arguments ( quand tu lance le programme )
argv est un tableau de tableau donc un tableau de chaine de caractères, qui lui contiendra les arguments.

Voici un exemple de ce que j'essaie de te dire:
Code:
#include <unistd.h>

void    ft_putchar(char c)
{
    write(1, &c, 1);
}

void    ft_putstr(const char *s)
{
    int i;

    i = 0;
    while (s[i] != '\0')
    {
        ft_putchar(s[i]);
        i++;
    }
}

int     main(void)
{
    ft_putchar('O');
    ft_putchar('k');
    ft_putchar('\n');
    ft_putstr("Texte\n");

    return (0);
}
ouai mais la ses du lanagage c++ et non du c mais merci après je sais comment le transformer en c
 
Dernière édition par un modérateur:
ah ok je comprend mais comme on a changé le comportement de l'algorithme va t'il faire la meme chose?
J'ai changer son comportement, non ?!!!!

ouai mais la ses du lanagage c++ et non du c mais merci après je sais comment le transformer en c
Où tu vois du C++ là sérieux ?

desoler mais j'ai un problème dans l'algorithme il me dit ok texte (peut etre parce que j'ai mal transorfmé le c++ en c?)
Apprends les bases, sérieux.
 
Retour
Haut