Débutant C bloqué

cadabra -  
fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   -
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

  1. ninouhhichem Messages postés 303 Statut Membre 9
     
    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
  2. ninouhhichem Messages postés 303 Statut Membre 9
     
    "\n" fait juste un ecrire dans une autre ligne
    le resultat peut afficher si le code source est juste
    1
    1. cadabra
       
      merci ninouhhichem
      c'est juste
      0
    2. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
       
      "\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.
      0
      1. ninouhhichem Messages postés 303 Statut Membre 9 > fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention  
         
        le resultat est juste cacher par ce que dans un terminale il y a beucoup d'écriture
        et on peut pas trouver le resultat
        0
      2. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847 > ninouhhichem Messages postés 303 Statut Membre
         
        Ce 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).
        0
  3. lolo621810 Messages postés 72 Statut Membre
     
    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!!
    0
  4. cadabra
     
    salut lolo621810

    ce que je fais est simple : gcc hello.c

    et le compilateur ne fait aucune objection !!
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    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
    0
    1. cadabra
       
      Merci fiddy

      avec "\n" ça fonctionne parfaitement.

      amicalement
      jerome
      0
  7. lolo621810 Messages postés 72 Statut Membre
     
    essaye de mettre

    system("PAUSE");

    avant le return 0;
    0
    1. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
       
      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 ;-))).
      0
  8. Brachior Messages postés 616 Statut Membre 46
     
    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
    0
    1. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
       
      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 ^^.
      0