Version française
Home     About     Download     Resources     Contact us    
Browse thread
print and output
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Pierre Weis <Pierre.Weis@i...>
Subject: Re: print and output
Bonjour,

> Quand j'ecris (en Ocaml) le "programme" suivant :
>         print_string ">>"; read_int ();;
> l'impression a lieu apres la lecture, ce qui me surprend, car il est dit

J'ai essaye' vos diffe'rentes versions, et toutes marchaient comme
vous vous y attendez. Je pense que votre proble`me vient peut-e^tre du
fait que vous utilisez la bibliothe`que Format. En ce cas, il y a un
retard a` l'impression car il faut attendre le mate'riel d'impression
pour pouvoir imprimer correctement. Si vous avez effectivement fait
open Format, il vous faut vider la queue d'impression avec
print_flush. E'crivez:

         print_string ">>"; print_flush (); read_int ();;

Ou bien appelez directement la primitive de base:

         Pervasives.print_string ">>"; read_int ();;

> Hi
> 
> When I write (in OCAML) the following program :
>         print_string ">>"; read_int ();;
> the reading takes place before the printing, what surprises me.

I tried your programs and they work fine, as you expect them to
work. My guess is that you don't use the basic print_string function,
but the one of the Format library module. That may be the case if you
have already open the Format module. In that case, you need to
flush the formatting queue with print_flush. You may write

         print_string ">>"; print_flush (); read_int ();;

Alternatively, you may directly call the standard primitive with:

         Pervasives.print_string ">>"; read_int ();;

Pierre Weis

INRIA, Projet Cristal, Pierre.Weis@inria.fr, http://pauillac.inria.fr/~weis/