Débutant C bloqué

Bonjour,
je suis sous Debian/lenny et j'utilise Tcl/Tk. Je m'essaie a C et j'ai recopié le code suivant :

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
printf("Bonjour");

return 0;
}

j ai sauvergardé le fichier sous hello.c et j'ai compilé en faisant

gcc hello.c

j'ai donc obtenu l'executable "a.out". que je lance en faisant "./a.out"

et rien n 'apparait dans le terminal ????

merci de m'aider à trouver mon erreur
jerome

je le lance en faisant ./a.out et je ne vois rien apparaitre dans mon terminal.
Configuration: Linux
Mozilla 1.9.0.9

7 réponses

  • Votes
  • Date
  • Date décroissante
  1. slt
    gcc hello.c
    c'est le compillateur de langage c si il ny a pas des eurreurs dans le code source alors tu peut taper
    ./a.out
    le resultat de ce prg est : Bonjour
    1. "\n" fait juste un ecrire dans une autre ligne
      le resultat peut afficher si le code source est juste
      1. merci ninouhhichem
        c'est juste
      2. Contributeur
        "\n" fait juste un ecrire dans une autre ligne
        Ouais, il permet aussi de fflusher la sortie, ce qui peut expliquer pourquoi ça ne marche pas sans.
      3. @fiddyle resultat est juste cacher par ce que dans un terminale il y a beucoup d'écriture
        et on peut pas trouver le resultat
      4. Contributeur
        @ninouhhichemCe que je veux te dire, c'est que le "\n" ne sert pas qu'à "sauter une ligne". Ca permet de flusher la sortie de manière implicite. Si en cours de programme tu ne le fais pas, rien n'oblige le compilateur à afficher ton printf (sauf cas particulier comme buffer rempli, etc).
    2. deja il n'y a pas d'erreur dans le code!!!!
      moi aussi je code en c et je ne fait pas toutes ces manipulations pour compiler. peut tu mieux crire ta facon de proceder s'il te plait?
      Comme ca je pourrai peut-etrre t'aider!!
      1. salut lolo621810

        ce que je fais est simple : gcc hello.c

        et le compilateur ne fait aucune objection !!
        1. Contributeur
          Salut,
          Cela m'étonne un peu.
          Mais il est vrai que lorsqu'on n'affiche pas le '\n' final, on a parfois des soucis d'affichage.
          Essais de mettre : printf("Bonjour\n"); (ou puts("Bonjour");)
          Cdlt
          1. Merci fiddy

            avec "\n" ça fonctionne parfaitement.

            amicalement
            jerome
        2. essaye de mettre

          system("PAUSE");

          avant le return 0;
          1. Contributeur
            Salut,
            Cette "astuce" est inutile si le programme est lancé en ligne de commande, ce qui est le cas ici.
            De plus "PAUSE" n'existe pas sous Gnu/Linux ;-))).
        3. la sortie standard est bufferisée ce qui fait qu'elle n'est pas affichée directement.
          Comme le dit fiddy '\n' marque une fin de bufferisation.

          Ce qui est bizarre c'est qu'une fois le programme terminé, ton message aurait quand même du s'afficher
          ( parfois même après avoir (ou pendant) écrit ta ligne user@host~: )

          tu peux voir la différence d'affichage avec la sortie d'erreur qui elle n'est pas bufferisée
          1. Contributeur
            Oui souvent ça s'affiche, et c'est bien caché avant le prompt. Mais, je suis déjà tombé sur des cas bizarres sans le petit "\n" final ^^.