Comment faire pour reouvrir la sortie standar

Résolu
rockool Messages postés 58 Statut Membre -  
 Marc -
Bonjour,

Est-ce que quelqu'un veut bien m'aider avec ce code...la dernière ligne
ne veut pas s'afficher. Comment faire pour réouvrir la sortie standard?
je veux parler de stdout

#include <stdio.h>

void main(void){
printf("Bonjour les z%cros!", 130);
fclose(stdout);
printf("Au revoir les z%cros", 130);
}
A voir également:

7 réponses

lucieb31 Messages postés 363 Statut Membre 62
 
mé un \n a l'interieur des " " la fin de tes printf.
@+
0
rockool Messages postés 58 Statut Membre 9
 
...et tu penses qu'un retour chariot pourrait regler l'affaire?
0
lucieb31 Messages postés 363 Statut Membre 62
 
c'est une possibilité, ça te permet de vider le buffer, et je sais que plusieurs fois il m'a fallu ajouter un \n pour que la ligne s'affiche
0
rockool Messages postés 58 Statut Membre 9
 
...tu penses que ça pourrait marcher avec un fflush(stdout)?
0
lucieb31 Messages postés 363 Statut Membre 62
 
tu peux essayer mais j'en suis pas sur
0
rockool Messages postés 58 Statut Membre 9
 
dak...je vais essaye
0
lucieb31 Messages postés 363 Statut Membre 62
 
aussi, c'est etonnant que tu n'ai pas d'erreur parce que main renvoit un int normalement
0
rockool Messages postés 58 Statut Membre 9
 
non...pas dans ce cas...j'ai mis void devant; t'as remarque?
0

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

Posez votre question
lucieb31 Messages postés 363 Statut Membre 62
 
oui mais normalement pour ton programme soit ecrit correctement, il te faut mettre int

http://www.cpptalk.net/pourquoi-int-main-et-pas-void-main--vt26546.html
0
rockool Messages postés 58 Statut Membre 9
 
merci a toi lucieb31... pour ton argumentation. Au fait, je mets presqu'en general void devant main(). Je vais faire de maxima efforts pour changer cette habitude ;-)
0
rockool Messages postés 58 Statut Membre 9
 
Excusez moi, vous pensez qu'on peut creer un tableau de fonctions en langage C?
0
lucieb31 Messages postés 363 Statut Membre 62
 
oui, mais ça a l'air compliqué, regarde là : https://c.developpez.com/cours/poly-c/?page=page_6#LVI-C-3
pourquoi veux tu faire ça ?
0
Marc
 
Du grand n'importe quoi ce site !
0
fiddy Messages postés 11653 Statut Contributeur 1 847
 
Salut,
Même s'il est vrai qu'il faut vider le buffer pour l'afficher, l'erreur est ailleurs.
Tu fais fclose(stdout). Autrement dit tu fermes la sortie standard. Donc tu ne peux plus écrire dessus. Après tu pourras faire une redirection sur un fichier. Ainsi en faisant puts("coucou"); cela écrira dans le fichier. Mais tu ne pourras plus récrire sur l'écran.
0
rockool Messages postés 58 Statut Membre 9
 
merci a toi fiddy, je te remercie de ton aide.
0