a simple question

matthias <>
Tue May 8 08:52:13 CEST 2001


Hi,

    Jonas> I have simple and short problem: I start a module that only
    Jonas> waits for input from the shell (with "In =
    Jonas> io:read("input>")) and starts this function recursive after
    Jonas> any input. But I get no input prompt on one computer and
    Jonas> one input prompt and no more on the other computer, both
    Jonas> are PCs running Windows 98. Is this a problem due to the
    Jonas> current OTP-Release 5.0 R7B6 or is it just a simple fault
    Jonas> of mine?

Specificially: Perhaps you're not entering a complete term, though
that doesn't explain the difference between systems. I don't know of
any such problem, but then again I don't use windows.

In general: if you post a problem like this, you're more likely to get
a good answer if you post 

   - a short but complete module which demonstrates the problem.

   - a copy of the input/output showing the behaviour you saw

Here's an example which does pretty much what I expect on my system:

-module(jonas).
-export([go/0]).

go() ->
        {ok, In} = io:read('Input>'),
        ok = io:fwrite("got: ~p\n", [In]),
        go().

Running it on my R7B node:

8> c(jonas).  
{ok,jonas}
9> jonas:go().
Input>bla
Input>.
got: bla
Input>
Input>3.
got: 3

I don't know why io:read treats its argument as a term rather than a
string, but this isn't uncommon in older parts of the library. Maybe
someone from Blutail/Alteon/Nortel can tell the story about the day Mr
Term and Mr String had an argument and stopped being two sides of the
same coin. ;-)

Matthias




More information about the erlang-questions mailing list