Débutant C bloqué

cadabra -  
fiddy Messages postés 11653 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.
A voir également:

7 réponses

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
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
cadabra
 
merci ninouhhichem
c'est juste
0
fiddy Messages postés 11653 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
ninouhhichem Messages postés 303 Statut Membre 9 > fiddy Messages postés 11653 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
fiddy Messages postés 11653 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
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
cadabra
 
salut lolo621810

ce que je fais est simple : gcc hello.c

et le compilateur ne fait aucune objection !!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
fiddy Messages postés 11653 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
cadabra
 
Merci fiddy

avec "\n" ça fonctionne parfaitement.

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

system("PAUSE");

avant le return 0;
0
fiddy Messages postés 11653 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
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
fiddy Messages postés 11653 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